MATLAB代码: 给定序列x1(n)=0.9^n,n=[0:11];h(n)=R9(n) 求 1)分别应用卷积函数和DFT计算x1(n)与h(n)的10点圆周卷积; 2)分别应用卷积函数和DFT计算x1(n)*h(n)
时间: 2024-05-16 09:16:45 浏览: 98
以下是MATLAB代码实现:
```matlab
% 定义序列x1(n)和h(n)
n = 0:11;
x1 = 0.9.^n;
h = R9(n);
% 1. 使用卷积函数计算10点圆周卷积
y1_conv = cconv(x1, h, 10);
% 2. 使用DFT计算10点圆周卷积
N = 12;
X1 = fft(x1, N);
H = fft(h, N);
Y1_dft = ifft(X1 .* H);
% 3. 使用卷积函数计算x1(n)*h(n)
y2_conv = conv(x1, h);
% 4. 使用DFT计算x1(n)*h(n)
Y2_dft = ifft(X1 .* fft(h, N));
% 显示结果
disp('使用卷积函数计算10点圆周卷积:');
disp(y1_conv);
disp('使用DFT计算10点圆周卷积:');
disp(Y1_dft(1:10));
disp('使用卷积函数计算x1(n)*h(n):');
disp(y2_conv);
disp('使用DFT计算x1(n)*h(n):');
disp(Y2_dft);
```
其中,R9(n)是一个自定义函数,用于生成一个长度为n的随机序列。
阅读全文