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

📄 q718.m

📁 这是matlab在电子信息课程中的应用
💻 M
字号:
%《MATLAB在电子信息课程中的应用》第七章例7.18程序q718
% 快速卷积计算
% 电子工业出版社出版  陈怀琛 吴大正 高西全合著 2001年10月

clear;close all
xn=input('请输入x(n)序列:xn= 书上用 sin(0.4*[1:15])');
hn=input('请输入h(n)长度:hn= 书上用 0.9.^(1:20)');
M=length(xn); N=length(hn);
nx=1:M; nh=1:N;
%循环卷积等于线性卷积的条件:循环卷积区间长度L>=M+N-1
L=pow2(nextpow2(M+N-1));%取L为大于等于且最接近(N+M-1)的2的正次幂
tic,    %快速卷积计时开始
Xk=fft(xn,L);		%L点FFT[x(n)]
Hk=fft(hn,L);		%L点FFT[h(n)]
Yk=Xk.*Hk;   %频域相乘得Y(k)
yn=ifft(Yk,L);%L点IFFT得到卷积结果y(n)    
toc     %快速卷积计时结束
subplot(2,2,1),stem(nx,xn,'.');
ylabel('x(n)')
subplot(2,2,2),stem(nh,hn,'.');
ylabel('h(n)')
subplot(2,1,2);ny=1:L;
stem(ny,real(yn),'.');ylabel('y(n)')
tic,
yn=conv(xn,hn);	%直接调用函数conv计算卷积与快速卷积比较
toc

⌨️ 快捷键说明

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