线性调制程序.docx

上传人:b****7 文档编号:23938341 上传时间:2023-05-22 格式:DOCX 页数:22 大小:17.45KB
下载 相关 举报
线性调制程序.docx_第1页
第1页 / 共22页
线性调制程序.docx_第2页
第2页 / 共22页
线性调制程序.docx_第3页
第3页 / 共22页
线性调制程序.docx_第4页
第4页 / 共22页
线性调制程序.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

线性调制程序.docx

《线性调制程序.docx》由会员分享,可在线阅读,更多相关《线性调制程序.docx(22页珍藏版)》请在冰豆网上搜索。

线性调制程序.docx

线性调制程序

AM解调

%am-dem.m

%Matlabdemonstrationscriptforenvelopedetection.Themessagesignal

%is+1for0

echoon

t0=.15;%signalduration

ts=0.001;%samplinginterval抽样时间

fc=250;%carrierfrequency载波频率

a=0.85;%Modulationindex

fs=1/ts;%samplingfrequency采样频率

t=[0:

ts:

t0];%timevector

df=0.25;%requiredfrequencyresolution

%messagesignal

m=[ones(1,t0/(3*ts)),-2*ones(1,t0/(3*ts)),zeros(1,t0/(3*ts)+1)];

c=cos(2*pi*fc.*t);%carriersignal

m_n=m/max(abs(m));%normalizedmessagesignal

[M,m,df1]=fftseq(m,ts,df);%Fouriertransform

f=[0:

df1:

df1*(length(m)-1)]-fs/2;%frequencyvector

u=(1+a*m_n).*c;%modulatedsignal

[U,u,df1]=fftseq(u,ts,df);%Fouriertransform

env=env_phas(u);%findtheenvelope

dem1=2*(env-1)/a;%removedcandrescale

signal_power=spower(u(1:

length(t)));%powerinmodulatedsignal

noise_power=signal_power/100;%noisepower

noise_std=sqrt(noise_power);%noisestandarddeviation

noise=noise_std*randn(1,length(u));%generatenoise

r=u+noise;%addnoisetothemodulatedsignal

[R,r,df1]=fftseq(r,ts,df);%Fouriertransform

env_r=env_phas(r);%envelope,whennoiseispresent

dem2=2*(env_r-1)/a;%demodulateinthepresenceofnoise

pause%Pressanykeytoseeaplotofthemessage

subplot(2,1,1)

plot(t,m(1:

length(t)))

axis([00.15-2.12.1])

xlabel('Time')

title('Themessagesignal')

pause%Pressanykeytoseeaplotofthemodulatedsignal

subplot(2,1,2)

plot(t,u(1:

length(t)))

axis([00.15-2.12.1])

xlabel('Time')

title('Themodulatedsignal')

pause%Pressakeytoseetheenvelopeofthemodulatedsignal

clf

subplot(2,1,1)

plot(t,u(1:

length(t)))

axis([00.15-2.12.1])

xlabel('Time')

title('Themodulatedsignal')

subplot(2,1,2)

plot(t,env(1:

length(t)))

xlabel('Time')

title('Envelopeofthemodulatedsignal')

pause%Pressakeytocomparethemessageandthedemodulatedsignal

clf

subplot(2,1,1)

plot(t,m(1:

length(t)))

axis([00.15-2.12.1])

xlabel('Time')

title('Themessagesignal')

subplot(2,1,2)

plot(t,dem1(1:

length(t)))

xlabel('Time')

title('Thedemodulatedsignal')

pause%Pressakeytocompareinthepresenceofnoise

clf

subplot(2,1,1)

plot(t,m(1:

length(t)))

axis([00.15-2.12.1])

xlabel('Time')

title('Themessagesignal')

subplot(2,1,2)

plot(t,dem2(1:

length(t)))

xlabel('Time')

title('Thedemodulatedsignalinthepresenceofnoise')

双边带解调

DSB1

%dsb1.m

%MatlabdemonstrationscriptforDSB-AMmodulation.Themessagesignal

%is+1for0

echoon

t0=.15;%signalduration

ts=0.001;%samplinginterval

fc=250;%carrierfrequency

snr=20;%SNRindB(logarithmic)

fs=1/ts;%samplingfrequency

df=0.3;%desiredfreq.resolution

t=[0:

ts:

t0];%timevector

snr_lin=10^(snr/10);%linearSNR

%messagesignal

m=[ones(1,t0/(3*ts)),-2*ones(1,t0/(3*ts)),zeros(1,t0/(3*ts)+1)];

c=cos(2*pi*fc.*t);%carriersignal

u=m.*c;%modulatedsignal

[M,m,df1]=fftseq(m,ts,df);%Fouriertransform

M=M/fs;%scaling

[U,u,df1]=fftseq(u,ts,df);%Fouriertransform

U=U/fs;%scaling

[C,c,df1]=fftseq(c,ts,df);%Fouriertransform

f=[0:

df1:

df1*(length(m)-1)]-fs/2;%freq.vector

signal_power=spower(u(1:

length(t)));%powerinmodulatedsignal

noise_power=signal_power/snr_lin;%computenoisepower

noise_std=sqrt(noise_power);%computenoisestandarddeviation

noise=noise_std*randn(1,length(u));%generatenoise

r=u+noise;%addnoisetothemodulatedsignal

[R,r,df1]=fftseq(r,ts,df);%spectrumofthesignal+noise

R=R/fs;%scaling

pause%Pressakeytoshowthemodulatedsignalpower

signal_power

pause%Pressanykeytoseeaplotofthemessage

clf

subplot(2,2,1)

plot(t,m(1:

length(t)))

xlabel('Time')

title('Themessagesignal')

pause%Pressanykeytoseeaplotofthecarrier

subplot(2,2,2)

plot(t,c(1:

length(t)))

xlabel('Time')

title('Thecarrier')

pause%Pressanykeytoseeaplotofthemodulatedsignal

subplot(2,2,3)

plot(t,u(1:

length(t)))

xlabel('Time')

title('Themodulatedsignal')

pause%Pressanykeytoseeaplotsofthemagnitudeofthemessageandthe

%modulatedsignalinthefrequencydomain.

subplot(2,1,1)

plot(f,abs(fftshift(M)))

xlabel('Frequency')

title('Spectrumofthemessagesignal')

subplot(2,1,2)

plot(f,abs(fftshift(U)))

title('Spectrumofthemodulatedsignal')

xlabel('Frequency')

pause%Pressakeytoseeanoisesample

subplot(2,1,1)

plot(t,noise(1:

length(t)))

title('noisesample')

xlabel('Time')

pause%Pressakeytoseethemodulatedsignalandnoise

subplot(2,1,2)

plot(t,r(1:

length(t)))

title('Signalandnoise')

xlabel('Time')

pause%Pressakeytoseethemodulatedsignalandnoiseinfreq.domain

subplot(2,1,1)

plot(f,abs(fftshift(U)))

title('Signalspectrum')

xlabel('Frequency')

subplot(2,1,2)

plot(f,abs(fftshift(R)))

title('Signalandnoisespectrum')

xlabel('Frequency')

DSB2

%dsb2.m

%MatlabdemonstrationscriptforDSB-AMmodulation.Themessagesignal

%ism(t)=sinc(100t).

echoon

t0=.2;%signalduration

ts=0.001;%samplinginterval

fc=250;%carrierfrequency

snr=20;%SNRindB(logarithmic)

fs=1/ts;%samplingfrequency

df=0.3;%requiredfreq.resolution

t=[-t0/2:

ts:

t0/2];%timevector

snr_lin=10^(snr/10);%linearSNR

m=sinc(100*t);%themessagesignal

c=cos(2*pi*fc.*t);%thecarriersignal

u=m.*c;%theDSB-AMmodulatedsignal

[M,m,df1]=fftseq(m,ts,df);%Fouriertransform

M=M/fs;%scaling

[U,u,df1]=fftseq(u,ts,df);%Fouriertransform

U=U/fs;%scaling

f=[0:

df1:

df1*(length(m)-1)]-fs/2;%frequencyvector

signal_power=spower(u(1:

length(t)));%computemodulatedsignalpower

noise_power=signal_power/snr_lin;%computenoisepower

noise_std=sqrt(noise_power);%computenoisestandarddeviation

noise=noise_std*randn(1,length(u));%generatenoisesequence

r=u+noise;%addnoisetothemodulatedsignal

[R,r,df1]=fftseq(r,ts,df);%Fouriertransform

R=R/fs;%scaling

pause%Pressakeytoshowthemodulatedsignalpower

signal_power

pause%Pressanykeytoseeaplotofthemessage

clf

subplot(2,2,1)

plot(t,m(1:

length(t)))

xlabel('Time')

title('Themessagesignal')

pause%Pressanykeytoseeaplotofthecarrier

subplot(2,2,2)

plot(t,c(1:

length(t)))

xlabel('Time')

title('Thecarrier')

pause%Pressanykeytoseeaplotofthemodulatedsignal

subplot(2,2,3)

plot(t,u(1:

length(t)))

xlabel('Time')

title('Themodulatedsignal')

pause%Pressanykeytoseeaplotofthemagnitudeofthemessageandthe

%modulatedsignalinthefrequencydomain.

subplot(2,1,1)

plot(f,abs(fftshift(M)))

xlabel('Frequency')

title('Spectrumofthemessagesignal')

subplot(2,1,2)

plot(f,abs(fftshift(U)))

title('Spectrumofthemodulatedsignal')

xlabel('Frequency')

pause%Pressakeytoseeanoisesample

subplot(2,1,1)

plot(t,noise(1:

length(t)))

title('noisesample')

xlabel('Time')

pause%Pressakeytoseethemodulatedsignalandnoise

subplot(2,1,2)

plot(t,r(1:

length(t)))

title('Signalandnoise')

xlabel('Time')

pause%Pressakeytoseethemodulatedsignalandnoiseinfreq.domain

subplot(2,1,1)

plot(f,abs(fftshift(U)))

title('Signalspectrum')

xlabel('Frequency')

subplot(2,1,2)

plot(f,abs(fftshift(R)))

title('Signalandnoisespectrum')

xlabel('Frequency')

DSB3

%dsb1.m

%MatlabdemonstrationscriptforDSB-AMmodulation.Themessagesignal

%is+1for0

echoon

t0=.15;%signalduration

ts=0.0005;%samplinginterval

fc=250;%carrierfrequency

snr=10;%SNRindB(logarithmic)

fs=1/ts;%samplingfrequency

t_long=20*t0;%extendedsignalduration

n0=floor(t_long/ts)+1;%lengthofextendedsignalvector

n00=2^(ceil(log2(n0)));

df=fs/n00;%frequencyresolution

t_long1=[0:

ts:

t_long];%extendedtimevector

f=[-fs/2+df:

df:

fs/2];%frequencyvector

%messagesignal

m=[ones(1,t0/(3*ts)),-2*ones(1,t0/(3*ts)),zeros(1,t0/(3*ts)+1)];

m_long=[m,zeros(1,n0-length(m))];%extendedmessagesignal

c_long=cos(2*pi*fc.*t_long1);%extendedcarriersignal

u_long=m_long.*c_long;%extendedmodulatedsignal

du_long=u_long.*c_long;

DU=fft(du_long,n00)/fs;

M=fft(m_long,n00)/fs;%spectrumoftheextendedmessagesignal

U=fft(u_long,n00)/fs;%spectrumoftheextendedmodulatedsignal

pause%Pressanykeytoseeaplotsofthemagnitudeofthemessageandthe

%modulatedsignalinthefrequencydomain.

subplot(2,1,1)

plot(f,abs(fftshift(M)))

xlabel('Frequency')

title('Spectrumofthemessagesignal')

subplot(2,1,2)

plot(f,abs(fftshift(U)))

title('Spectrumofthemodulatedsignal')

xlabel('Frequency')

pause%PressakeytoseethemodulatedandmodulatedXcarrierinfreq.domain

subplot(2,1,1)

plot(f,abs(fftshift(U)))

title('Modulatedsignalspectrum')

xlabel('Frequency')

subplot(2,1,2)

plot(f,abs(fftshift(DU)))

title('ModulatedsignalXCarrierspectrum')

xlabel('Frequency')

DSBDEM

%dsb_dem.m

%MatlabdemonstrationscriptforDSB-AMdemodulation.Themessagesignal

%is+1for0

echoon

t0=.15;%signalduration

ts=1/1500;%samplinginterval

fc=250;%carrierfrequency

fs=1/ts;%samplingfrequency

t=[0:

ts:

t0];%timevector

df=0.3;%desiredfrequencyresolution

%messagesignal

m=[ones(1,t0/(3*ts)),-2*ones(1,t0/(3*ts)),zeros(1,t0/(3*ts)+1)];

c=cos(2*pi*fc.*t);%carriersignal

u=m.*c;%modulatedsignal

y=u.*c;%mixing

[M,m,df1]=fftseq(m,ts,df);%Fouriertransform

M=M/fs;%scaling

[U,u,df1]=fftseq(u,ts,df);%Fouriertransform

U=U/fs;%scaling

[Y,y,df1]=fftseq(y,ts,df);%Fouriertransform

Y=Y/fs;%scaling

f_cutoff=150;%cutofffreq.ofthefilter

n_cutoff=floor(150

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1