数字信号实验2:卷积与DFT运算
一、 实验目的
(1) 熟悉序列的卷积运算及其MATLAB实现。
(2) 熟悉离散序列的傅里叶变换理论及其MATLAB实现。
二、 实验内容
1、离散序列卷积运算的MATLAB实现
已知 x(n)={1,2,3,4,5},h(n)={6,2,3,6,4,2} ,计算y(n)=x(n)*h(n) 。
两序列的线性卷积定义为:
源程序及图形如下:
Nx=5;Nh=6;L=Nx+Nh-1; %设定Nn、Nh和位移值L
nx=0:Nx-1;
nh=0:Nh-1;
ny=0:L-1;
x=[1,2,3,4,5];
h=[6,2,3,6,4,2];
y=conv(x,h); %计算卷积
subplot(1,3,1); %1*3个窗口,在第1个绘制图形
stem(nx,x,'*k'); %根据有关nx绘制一个n
xlabel('n');ylabel('x(n)');%给坐标添加说明
grid on; %绘制网格
subplot(1,3,2);
stem(nh,h,'*k');
xlabel('n');ylabel('h(n)');
grid on;
subplot(1,3,3);
stem(ny,y,'*k');
xlabel('n');ylabel('y(n)');
grid on;
2、离散序列傅里叶变换的MATLAB实现
已知x(n)=(-0.9)^n,-10≤n≤10 ,求其离散时间傅里叶变换并讨论其共轭对称性。
根据傅里叶变换公式:
源程序及图形如下:
n=-10:10 ;
x=(-0.9).^n;
k=-200:200;
w=(pi/100)*k;
X=x*(exp(-j*pi/100)).^(n'*k) %离散时间傅里叶变换 DTFT
magX=abs(X); %绝对值和复数的幅度值*/
angX=angle(X); %求复数相位
subplot(2,1,1);plot(w/pi,magX); %plot(w/pi,magX),w/pi为横坐标,magX为纵坐标
xlabel('Frequency in pi units');ylabel('|X|');title('Magnitude Port');grid on;
subplot(2,1,2);plot(w/pi,angX);
xlabel('Frequency');ylabel('|Angle|');title('Angle Port');grid on;
3、x(n)=R_4 (n) ,求周期序列 x ̃(n)=x((n))_6,试求X ̃(k),并作图表示 x ̃(n)、X ̃(k) 。
源程序及图形如下:
n=0:5;
x=