MATLAB_数字信号处理_05_离散傅里叶级数及其变换

SYSU_SECE_MATLAB_数字信号处理_05

离散傅里叶级数及其变换

在这里插入图片描述
部分原理:

1、周期序列的离散傅里叶级数
离散周期序列x(n)~满足x(n)=x(n+rN)
x(n)~=IDFS[ X(k)~ ] X(k)~=DFS[ x(n)~ ]
周期序列的频谱X(k)~也是一个以N为周期的周期序列
2、由离散时间傅里叶变换的定义:信号在时域上是离散的、非周期的,而在频域上是连续的、周期性的
3、DFT的线性性质:
y(n)=a * x1(n) + b * x2(n) 长度分别为N1和N2
则y(n)的N点DFT为Y(k)=a * X1(k) + b* X2(k) N=max[N1,N2]
4、DFT的循环移位性质:
如果有限长序列x(n)长度为N,将x(n)左移m位,则
有限长序列的移位也称循环移位,原因是将x(n)左移m位时,移出的m位又依次从右端进入主值区
5、DFT的循环折叠性质:
序列x(n)的折叠可以由y=x(mod(-nx,N)+1)得到
在这里插入图片描述

figure(1)
N=7;
x=[1,2,3,4,3,2,1];
xn=[x,x];
n=0:2*N-1;
k=0:2*N-1;
stem(n,xn,'filled');xlabel('n');ylabel('x(n)');title('x(n)序列波形');
%part1:
figure(2)
Xk=xn*exp(-j*2*pi/N).^(n'*k);%离散傅里叶级数变换
stem(k,abs(Xk),'filled');title('幅度谱')%幅度谱
figure(3)
stem(k,abs(Xk),'filled');title('相位谱')%相位谱
%part2
figure(4)
x=(Xk*exp(j*2*pi/N).^(n'*k))/N;%逆变换
stem(n,abs(x),'filled');title('傅里叶级数逆变换')%显示逆变换结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

figure(5)%part1
xn=[1,1,0,0];
N=4;
n=0:N-1;
k=0:N-1;
n_=0:3*N-1;
k_=0:3*N-1;
xn_=[xn,xn,xn];
subplot(2,1,1);stem(n,xn,'filled');title('x(n)');
subplot(2,1,2);stem(n_,xn_,'filled');title('x(n)~');
figure(6)
Xk=xn_*exp(-j*2*pi/N).^(n_'*k_);%离散傅里叶级数变换
subplot(2,1,1);stem(k_,abs(Xk),'filled');title('|X(k)~|');
subplot(2,1,2);stem(k_,angle(Xk),'filled');title('arg[X(k)~]');

在这里插入图片描述
在这里插入图片描述

figure(7)%part1
xn=[7,5,6,4,3,2];
N=length(xn);
n=0:N-1;
k=0:N-1;
Xk=xn*exp(-j*2*pi/N).^(n'*k);%离散傅里叶变换
x=(Xk*exp(j*2*pi/N).^(n'*k));%离散傅里叶逆变换
subplot(2,1,1);stem(k,abs(Xk),'filled');title('|X(k)|');
subplot(2,1,2);stem(k,angle(Xk),'filled');title('arg[X(k)]');
figure(8)%part2
subplot(2,1,1);stem(n,xn,'filled');title('x(n)');
subplot(2,1,2);stem(n,abs(x),'filled');title('arg[X(k)]');

在这里插入图片描述
在这里插入图片描述

figure(9)%part1
xn=[7,6,5,3,4,2];
N=length(xn);
subplot(2,1,1);stem(0:N-1,xn,'filled');title('x(n)主值序列');
n=0:3*N-1;xnt=[xn,xn,xn];
subplot(2,1,2);stem(n,xnt,'filled');title('x(n)周期序列');
figure(10)%part2
k=0:3*N-1;
Xk=xnt*exp(-j*2*pi/N).^(n'*k);%离散傅里叶变换
subplot(2,1,1);stem(k,abs(Xk),'filled');title('|X(k)|');
subplot(2,1,2);stem(k,angle(Xk),'filled');title('arg[X(k)]');

在这里插入图片描述
在这里插入图片描述

figure(11)
xn=[7,6,5,4,3,2];
n=0:length(xn)-1;
stem(n,xn,'filled');title('原信号x(n)');
figure(12)
w=linspace(-2*pi,2*pi,200);%将区间分成200份
X=xn*exp(-j*n'*w);
subplot(2,1,1);plot(w,abs(X));title('|X(k)~|');
subplot(2,1,2);plot(w,angle(X));title('arg[X(k)~]');
figure(13)
N=100;
xn_=[7,6,5,4,3,2,zeros(1,N-6)];
n=0:N-1;
k=0:N-1;
Xk=xn_*exp(-j*2*pi/N).^(n'*k);%离散傅里叶变换
subplot(2,1,1);stem(k,abs(Xk),'filled');title('|X(k)|');%幅度谱
subplot(2,1,2);stem(k,angle(Xk),'filled');title('arg[X(k)]');%相位谱

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

figure(14)
xn=[8,7,6,5,4,3,2,1];
Ln=length(xn);
N=10;%循环长度
xn_=[xn,zeros(1,10-Ln)];
n=0:9;
k=0:9;
Xk=xn_*exp(-j*2*pi/N).^(n'*k)%离散傅里叶变换
subplot(3,1,1);stem(n,xn_,'filled');title('x(n)  N=10');
subplot(3,1,2);stem(k,real(Xk),'filled');title('real(X(k))');
subplot(3,1,3);stem(n,imag(Xk),'filled');title('imag(X(k))');
figure(15)
yn_=xn_(mod(-n,10)+1);
subplot(3,1,1);stem(n,yn_,'filled');title('时域折叠后的函数');
Yk=yn_*exp(-j*2*pi/N).^(n'*k)%离散傅里叶变换
subplot(3,1,2);stem(k,real(Yk),'filled');title('时域折叠后对应的DFT real(Y(k))');
subplot(3,1,3);stem(k,imag(Yk),'filled');title('时域折叠后对应的DFT imag(Y(k))');
disp('得证:在时域折叠后的函数,其对应的DFT在频域也循环折叠,并取X(k)的共轭')

在这里插入图片描述
上述题目基本全部改编/出自自西安电子科技大学出版社出版的《数字信号处理实验(MATLAB版)》,可以在其中找到原理部分,我们理论课使用的教材也是西电的:《数字信号处理》(第四版)高西全 丁玉美

声明:不保证代码的正确性,只是提供一种思路……

  • 6
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SmallC1oud

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值