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

📄 2.txt

📁 编写一个MATLAB函数
💻 TXT
字号:
1.编写一个MATLAB函数,实现快速卷积算法。
  函数实现:
function y=clconvt(x1,x2,N)
if length(x1)>N
    errordlg('N必须>=x1的长度!’,’错误!’);
elseif length(x2)>N
    errordlg('N必须>=x2的长度!’,’错误!’);
else
    x1=[x1 zeros(1,N-length(x1))];
    x2=[x2 zeros(1,N-length(x2))];
    y1=fft(x1,N);
    y2=fft(x2,N);
    Y=y1.*y2;
    y=ifft(Y);
end 
x=[1,2,2,1];
>> h=[1,2,3,4,5];
>> N=9;
>> y=clconvt(x,h,9)
y =
  Columns 1 through 8 
    1.0000    4.0000    9.0000   15.0000   21.0000   21.0000   14.0000    5.0000
  Column 9 
    0.0000
>> stem(y)

2.编写一个MATLAB函数,用一个N点离散傅立叶变换同时计算两个N点实序列的离散傅立叶变换,并将结果与直接使用两个N点离散傅立叶变换计算出来的结果进行比较。
函数实现如下:
function [X1,X2]=qwdft(x1,x2,N)
x=x1+j*x2;
X=fft(x,N);
Y=conj(X);
K=0:N-1;
X1=0.5*(X+Y(mod(-K,N)+1));
X2=-j*0.5*(X-Y(mod(-K,N)+1));
源代码:
x1=[1,3,2,4];
>> x2=[3,2,6,1];
>> [X1,X2]=qwdft(x1,x2,4)
X1 =
  10.0000            -1.0000 + 1.0000i  -4.0000            -1.0000 - 1.0000i
X2 =
  12.0000            -3.0000 - 1.0000i   6.0000            -3.0000 + 1.0000i
>> x1=[1,3,2,4];
>> X1=fft(x1)
X1 =
  10.0000            -1.0000 + 1.0000i  -4.0000            -1.0000 - 1.0000i
>> x2=[3,2,6,1];
>> X2=fft(x2)
X2 =
  12.0000            -3.0000 - 1.0000i   6.0000            -3.0000 + 1.0000i

⌨️ 快捷键说明

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