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+1for0echoon
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+1for0echoon
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+1for0echoon
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