?? sinchscy.m
字號:
%用sinc函數時域進行低通抽樣定理的證明
clc
clear
a=-4;%信號的起始時間
b=4;%信號的終止時間
fc=1/2;%sinc函數的最高頻分量值
ts=1/(32*fc);%為使信號能較平滑的畫出,設置的采樣時間間隔
fs=1/ts;%由上面的采樣時間間隔得到的采樣頻率
t=a:ts:b;
f=-fs/2+fs/length(t):fs/length(t):fs/2;
y=sinc(2*fc*t);
y_spect=fftshift(abs(fft(y)));
%------
fs1=fc*2;%臨界采樣頻率
ts1=1/fs1;%臨界采樣的時間間隔
n1=ts1/ts;
t1=a:ts1:b;%臨界采樣時刻
x1=sinc(2*fc*t1);%臨界采樣得到的采樣值
y1=zeros(1,n1*(length(x1)-1)+1);
y1(1:n1:n1*length(x1))=x1;
y1_spect=fftshift(abs(fft(y1)));
z1=convn(y1,sinc(t/ts1),'same');%重建信號
z1_spect=fftshift(abs(fft(z1)));%重建信號的頻譜
%-----
fs2=fc*1.5;%欠采樣頻率
ts2=1/fs2;%欠采樣的時間間隔
n2=ts2/ts;
t2=a:ts2:b;%欠采樣時刻
x2=sinc(2*fc*t2);%欠采樣得到的采樣值
y2=zeros(1,n1*(length(x2)-1)+1);
y2(1:n2:n2*length(x2))=x2;
y2_spect=fftshift(abs(fft(y2)));
z2=convn(sinc(t/ts2),y2,'same');%重建信號
z2_spect=fftshift(abs(fft(z2)));%重建信號的頻譜
%----
fs3=fc*4;%過采樣頻率
ts3=1/fs3;%過采樣的時間間隔
n3=ts3/ts;
t3=a:ts3:b;%過采樣時刻
x3=sinc(2*fc*t3);%過采樣得到的采樣值
y3=zeros(1,n3*(length(x3)-1)+1);
y3(1:n3:n3*length(x3))=x3;
y3_spect=fftshift(abs(fft(y3)));
z3=convn(y3,sinc(t/ts3),'same');%重建信號
z3_spect=fftshift(abs(fft(z3)));%重建信號的頻譜
%-------繪圖
figure(1)
subplot(3,2,1)
plot(t,y);title('原始信號');grid
subplot(3,2,2)
plot(f,y_spect);title('原始信號的頻譜');grid
axis([min(f),max(f),min(y_spect),max(y_spect)])
subplot(3,2,3)
stem(t1,x1);title('臨界采樣得到的抽樣點');grid
subplot(3,2,4)
plot(f,y1_spect);title('抽樣點的頻譜');grid
axis([min(f),max(f),min(y1_spect),max(y1_spect)])
subplot(3,2,5)
plot(t,z1);title('用臨界采樣得到的抽樣點重建的信號');grid
subplot(3,2,6)
plot(f,z1_spect);title('重建信號的頻譜');grid
axis([min(f),max(f),min(z1_spect),max(z1_spect)])
figure(2)
subplot(3,2,1)
plot(t,y);title('原始信號');grid
subplot(3,2,2)
plot(f,y_spect);title('原始信號的頻譜');grid
axis([min(f),max(f),min(y_spect),max(y_spect)])
subplot(3,2,3)
stem(t2,x2);title('欠采樣得到的抽樣點');grid
subplot(3,2,4)
plot(f,y2_spect);title('抽樣點的頻譜');grid
axis([min(f),max(f),min(y2_spect),max(y2_spect)])
subplot(3,2,5)
plot(t,z2);title('用欠采樣得到的抽樣點重建的信號');grid
subplot(3,2,6)
plot(f,z2_spect);title('重建信號的頻譜');grid
axis([min(f),max(f),min(z2_spect),max(z2_spect)])
figure(3)
subplot(3,2,1)
plot(t,y);title('原始信號');grid
subplot(3,2,2)
plot(f,y_spect);title('原始信號的頻譜');grid
axis([min(f),max(f),min(y_spect),max(y_spect)])
subplot(3,2,3)
stem(t3,x3);title('過采樣得到的抽樣點');grid
subplot(3,2,4)
plot(f,y3_spect);title('抽樣點的頻譜');grid
axis([min(f),max(f),min(y3_spect),max(y3_spect)])
subplot(3,2,5)
plot(t,z3);title('用過采樣得到的抽樣點重建的信號');grid
subplot(3,2,6)
plot(f,z3_spect);title('重建信號的頻譜');grid
axis([min(f),max(f),min(z3_spect),max(z3_spect)])
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -