实验一常见数字信号的MATLAB实现实验目的1.熟悉连续信号理想采样前后的频谱变化,加深对时域采样定理的理解。2.熟悉时域离散系统的时域特性。实验内容二、1、理想采样信号序列(1)首先产生信号x(n),0<=n<=50n=0:50;%定义序列的长度是50A=444.128;%设置信号有关的参数a=50*sqrt (2.0)*pi;T=0.001;%T为采样率%w符号在MatLab中不能输入,用w代替w0=50*sqrt(2.0)*pi;%pi是MATLAB定义的元,信号乘可采用“*x=A*exp(-a"n*T).*sin(w0*n*T):close all%清除已经绘制的x(n)图形subplot(3,1.1);stem(x):%绘制x(n)的图形title(理想采样信号序列");(2)绘制信号x(n)的幅度谱和相位谱k=-25:25;X=x*(exp(-j*pi/12.5).(n*k);magX=abs(X);%绘制x(n)的幅度谱subplot(3.1,2);stem(magX);title(理想采样信号序列的幅度谱");% 绘制x(n)的相位谱angX=angle(X);subplot(3.1,3);stem(angx):title(理想采样信号序列的相位谱):理想采样信号序列200100XO506C理想采样信导序列的幅谱1000500SE理翻菜样信列的相帮谱e拉401020503060(3)改变参数为:)A=1,a=0.4,w0=2.0734,T=11 /14
1 / 14 实验一 常见数字信号的 MATLAB 实现 一、 实验目的 1.熟悉连续信号理想采样前后的频谱变化,加深对时域采样定理的理解。 2.熟悉时域离散系统的时域特性。 二、 实验内容 1、理想采样信号序列 (1)首先产生信号 x(n),0<=n<=50 n=0:50; % 定义序列的长度是 50 A=444.128; % 设置信号有关的参数 a=50*sqrt (2.0)*pi; T=0.001; % T 为采样率 w0=50*sqrt(2.0)*pi; % ω符号在 MatLab 中不能输入,用 w 代替 x=A*exp(-a*n*T).*sin(w0*n*T); %pi 是 MATLAB 定义的π,信号乘可采用“.* ” close all % 清除已经绘制的 x(n) 图形 subplot(3,1,1);stem(x); % 绘制 x(n) 的图形 title('理想采样信号序列'); (2)绘制信号 x(n)的幅度谱和相位谱 k=-25:25; X=x*(exp(-j*pi/12.5)).^(n'*k); magX=abs(X); % 绘制 x(n) 的幅度谱 subplot(3,1,2);stem(magX);title('理想采样信号序列的幅度谱'); angX=angle(X); % 绘制 x(n) 的相位谱 subplot(3,1,3);stem(angX) ; title ('理想采样信号序列的相位谱') ; (3)改变参数为: A=1 , a=0.4, w0=2.0734, T=1
%设置信号有关的参数和采样率TA=1;a=0.4; w0=2.0734;T=1;%pi是MATLAB定义的π,信号乘可采用“x=A*exp(-a*n*T).*sin(wO*n*T):%清除已经绘制的x(n)图形close all%绘制x(n)的图形subplot(3,1,1);stem(x);title(理想采样信号序列);k=-25:25;X=x*(exp(-jpi/12.5)).^(n*k);% 绘制x(n)的幅度谱magX=abs(X);subplot(3.1,2);stem(magX);title(理想采样信号序列的幅度谱");%绘制x(n)的相位谱angX=angle(X);subplot(3.1,3);stem(angX):title(理想采样信号序列的相位谱);理想采样信号序列0.5coeocooeo-0.5105060理想采样信序列的幅谱1.6n60FC理想采样信导乐导序列的相妞谱530A0501020S02、单位脉冲序列在MatLab中,这一函数可以用zeros函数实现:%定义序列的长度是50n=1:50;x=zeros(1,50);%注意:MATLAB中数组下标从1开始x(1)=1;close all;subplot(3.1.1);stem(x);title(单位冲击信号序列)2 / 14
2 / 14 A=1; a=0.4; w0=2.0734; T=1; % 设置信号有关的参数和采样率 T x=A*exp(-a*n*T).*sin(w0*n*T); %pi 是 MATLAB 定义的π,信号乘可采用“.* ” close all % 清除已经绘制的 x(n) 图形 subplot(3,1,1);stem(x); % 绘制 x(n) 的图形 title('理想采样信号序列'); k=-25:25; X=x*(exp(-j*pi/12.5)).^(n'*k); magX=abs(X); % 绘制 x(n) 的幅度谱 subplot(3,1,2);stem(magX);title('理想采样信号序列的幅度谱'); angX=angle(X); % 绘制 x(n) 的相位谱 subplot(3,1,3);stem(angX) ; title ('理想采样信号序列的相位谱') ; 2、单位脉冲序列 在 MatLab 中,这一函数可以用 zeros 函数实现: n=1:50; % 定义序列的长度是 50 x=zeros(1,50); % 注意:MATLAB 中数组下标从 1 开始 x(1)=1; close all; subplot(3,1,1);stem(x);title('单位冲击信号序列');
k=-25:25;X=x(exp(-j"pi/12.5)).(n**k):%绘制x(n)的幅度谱magX=abs(X);subplot(3.1,2);stem(magx);title(单位冲击信号的幅度谱");%绘制x(n)的相位谱angX=angle(X);subplot(3.1,3);stem(angX):title(单位冲击信号的相位谱"):单位冲击信号序列0.5xXxeoo1015单位神击信号的幅度35A1.50.5105060单位冲击信聘的相位谱5POPPRe540S10203050603、矩形序列n=1:50;close all;subplot(3.1,1):stem(x);title(矩形信号序列):k=-25:25;X=x*(exp(-j*pi/12.5)).(n*k);% 绘制x(n)的幅度谱magX=abs(X);subplot(3.1,2);stem(magX);title(矩形序列的幅度谱");% 绘制x(n)的相位谱angX=angle(X);subplot(3.1,3);stem(angX):title(矩形序列相位谱);3 /14
3 / 14 k=-25:25; X=x*(exp(-j*pi/12.5)).^(n'*k); magX=abs(X); % 绘制 x(n) 的幅度谱 subplot(3,1,2);stem(magX);title('单位冲击信号的幅度谱'); angX=angle(X); % 绘制 x(n) 的相位谱 subplot(3,1,3);stem(angX) ; title ('单位冲击信号的相位谱') ; 3、矩形序列 n=1:50; close all; subplot(3,1,1); stem(x);title('矩形信号序列'); k=-25:25; X=x*(exp(-j*pi/12.5)).^(n'*k); magX=abs(X); % 绘制 x(n) 的幅度谱 subplot(3,1,2);stem(magX);title('矩形序列的幅度谱'); angX=angle(X); % 绘制 x(n) 的相位谱 subplot(3,1,3);stem(angX) ; title ('矩形序列相位谱') ;
矩形信号序列D:5F10矩序列的幅度谱1060矩形序别相位谱on 19t 111pi?环工01050602030404、特定冲击串n=1:50;%定义序列的长度是50%注意:MATLAB中数组下标从1开始x=zeros(1,50):close all;subplot(3.1.1);stem(x);title(特定冲击串序列);k=-25:25;X=x(exp(-jpi/12.5)).(n*k);%绘制x(n)的幅度谱magX=abs(X);subplot(3.1,2);stem(magX);title(特定冲击串序列的幅度谱");% 绘制x(n)的相位谱angX=angle(X);subplot(3.1,3);stem(angX):title(特定冲击串序列相位谱"):特定冲击串序列60期定冲市传列相位I 12eoUla6010203040604/14
4 / 14 4、特定冲击串 n=1:50; % 定义序列的长度是 50 x=zeros(1,50); % 注意:MATLAB 中数组下标从 1 开始 close all; subplot(3,1,1);stem(x);title('特定冲击串序列'); k=-25:25; X=x*(exp(-j*pi/12.5)).^(n'*k); magX=abs(X); % 绘制 x(n) 的幅度谱 subplot(3,1,2);stem(magX);title('特定冲击串序列的幅度谱'); angX=angle(X); % 绘制 x(n) 的相位谱 subplot(3,1,3);stem(angX) ; title ('特定冲击串序列相位谱') ;
实验二离散傅里叶变换(DFT)的MATLAB实现一、实验目的1.掌握MATLAB实现离散傅里叶变换(DFT)的方法。2.掌握用FFT方法对连续信号和离散信号进行频谱分析。二、实验内容1.离散傅里叶变换傅里叶变换是建立在以时间为自变量的“信号”和以频率为自变量的“频率函数”之间的某种变换关系。离散傅里叶变换(DFT)就是傅里叶变换在时间域和频率域都离散时的情形。设x(n)为长度为N的有限长序列,则该序列的傅里叶变换及其逆变换分别为:Ex(n)WkX(k)= DFT(x(n))=,k=0,1,...,N-1,n=01 N-!EX(k)Wnkx(n)=IDFT(X(k))=k=0,1, , N-1,NO,2元其中W=e通过定义,不难写出其MATLAB程序。例:已知序列x(n)=(1,2,4,5,6,7,8,10),求x(n)的傅里叶变换DFT及其傅里叶逆变换IDFT,并画出原信号x(n)与其傅里叶逆变换IDFT[X(k))的图形进行比较MATLAB程序如下:%建立信号x(n)x=[1,2,4,5,6,7,8,10];%信号长度N=length(x):n=0: N-1:k=0: N-1:%离散傅里叶变换X=x*exp(-j*2*pi / N).^(n**k);%显示原信号figure(1),stem(n, x);title(x(n)"):figure(2), stem(n, abs(x1);%显示逆变换结果title("IDFTX(k)I):程序执行结果如图下图所示。5/14
5 / 14 实验二 离散傅里叶变换(DFT)的 MATLAB 实现 一、实验目的 1.掌握 MATLAB 实现离散傅里叶变换(DFT)的方法。 2.掌握用 FFT 方法对连续信号和离散信号进行频谱分析。 二、实验内容 1.离散傅里叶变换 傅里叶变换是建立在以时间为自变量的“信号”和以频率为自变量的“频率函数”之间 的某种变换关系。离散傅里叶变换(DFT)就是傅里叶变换在时间域和频率域都离散时的情 形。设 x(n)为长度为 N 的有限长序列,则该序列的傅里叶变换及其逆变换分别为: − = = = 1 0 ( ) ( ( )) ( ) N n nk n WN X k DFT x n x ,k=0,1,.,N-1, − = − = = 1 0 ( ) 1 ( ) ( ( )) N k nk WN X k N x n IDFT X k , k=0,1,.,N-1, 其中 N j N W e 2 − = 通过定义,不难写出其 MATLAB 程序。 例:已知序列 x(n)=(1,2,4,5,6,7,8,10),求 x(n)的傅里叶变换 DFT 及其傅里叶 逆变换 IDFT,并画出原信号 x(n)与其傅里叶逆变换 IDFT[X(k)]的图形进行比较。 MATLAB 程序如下: x=[1,2,4,5,6,7,8,10]; %建立信号 x(n) N=length(x); %信号长度 n=0:N-1;k=0:N-1; X=x*exp(-j*2*pi/N).^(n’*k); %离散傅里叶变换 figure(1),stem(n,x); %显示原信号 title(’x(n)’); figure(2),stem(n,abs(x1)); %显示逆变换结果 title(’IDFT| X(k) |’); 程序执行结果如图下图所示