⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hc972.m

📁 书籍中包含的第三部分实例的matlab代码
💻 M
字号:
%《数字信号处理教程——MATLAB释义与实现》第四章例9.7.2程序hc972
% 降低采样率(抽取)信号的生成
% 电子工业出版社出版  陈怀琛编著 2004年9月
%
Nx=100;
M=5;
fsx=5;T=1/fsx;
alpha=0.5;nx=0:Nx-1;   % 设定x的自变量向量
nm=floor(nx-Nx/2+0.5);
x=exp(-alpha*nx*T);      % 给出x序列的值
Ny=ceil(Nx/M);ny=0:Ny-1;
nym=floor(ny-Ny/2+0.5);
b=[0,0.0019,0.0203,0.0772,0.1589,0.2,0.1589,0.0772,0.0203,0.0019,0];  %用例733的滤波器系数
x1=filter(b,1,x);      % 进行滤波,得出x1
y1=x1(1:M:Nx);      % 实行抽取,给出y序列在x对应点处的值
%y1=resample(x,1,M);
y2=exp(-alpha*ny*T*M);
X=fftshift(fft(x));         % 求x频谱,并移到对称位置
X1=fftshift(fft(x1));       % 求y频谱,并移到对称位置
Y1=fftshift(fft(y1));       % 求y1频谱,并移到对称位置
Y2=fftshift(fft(y2));       % 求y2频谱,并移到对称位置
subplot(4,2,1),stem(nx,x,'.')           % 以下绘图
xlabel('nx'),ylabel('原始序列x')        %
title('时域波形')                       %
axis([0,100,0,1.2])
subplot(4,2,3),stem(nx,x1,'.')          %
xlabel('nx'),ylabel('x经滤波=x1')       %
axis([0,100,0,1.2])
subplot(4,2,5),stem(ny,y1,'.')          %
xlabel('ny'),ylabel('x1经抽取=y1')      %
axis([0,20,0,1.2])
subplot(4,2,7),stem(ny,y2,'.')          %
xlabel('ny'),ylabel('直接抽取y2')       %
axis([0,20,0,1.2])
subplot(4,2,2),stem(nm*2*pi*fsx/Nx,abs(X),'.')      %
xlabel('\Omega'),ylabel('abs(X)')                   %
title('与左图对应的频谱形状')                       %
subplot(4,2,4),stem(nm*2*pi*fsx/Nx,abs(X1),'.')     %
xlabel('\Omega'),ylabel('abs(X1)')                  %
subplot(4,2,6),stem(nym*2*pi*fsx/M/Ny,abs(Y1),'.')  %
axis([-fsx*pi,fsx*pi,0,2])
xlabel('\Omega'),ylabel('abs(Y1)')                  %
subplot(4,2,8),stem(nym*2*pi*fsx/M/Ny,abs(Y2),'.')  %
xlabel('\Omega'),ylabel('abs(Y2)')                  %
axis([-fsx*pi,fsx*pi,0,4])
set(gcf,'color','w')                                % 置图形背景色为白

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -