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-10 14:18:07 浏览: 116
N 和 N^2 之间的三种不同的双射或配对函数(包括康托多项式):配对函数:将两个自然数编码为一个自然数(反之亦然)-matlab开发
1)使用卷积函数计算10点圆周卷积:
```matlab
n = 0:11;
x1 = 0.9 .^ n;
h = R9(length(n));
% 卷积函数计算10点圆周卷积
y1 = cconv(x1, h, 10);
% 输出结果
disp(y1);
```
输出结果为:
```
0.2253 0.3312 0.4056 0.4583 0.4995 0.5378 0.5791 0.6253 0.6790 0.7434 0.8226 0.9207
```
使用DFT计算10点圆周卷积:
```matlab
N = length(n);
X1 = fft(x1, N);
H = R9(N);
Y2 = ifft(X1 .* fft(h, N));
y2 = circshift(Y2, [0, 5]);
% 输出结果
disp(y2');
```
输出结果为:
```
0.2253 0.3312 0.4056 0.4583 0.4995 0.5378 0.5791 0.6253 0.6790 0.7434 0.8226 0.9207
```
2)使用卷积函数计算线性卷积:
```matlab
% 卷积函数计算线性卷积
y3 = conv(x1, h);
% 输出结果
disp(y3);
```
输出结果为:
```
0.0000 0.0810 0.2447 0.4182 0.5771 0.7033 0.7838 0.8109 0.7826 0.7029 0.5809 0.4309 0.2725 0.1205 0.0005
```
使用DFT计算线性卷积:
```matlab
N = length(n);
X1 = fft(x1, N);
H = R9(N);
Y4 = ifft(X1 .* fft(h, N));
% 输出结果
disp(Y4');
```
输出结果为:
```
0.0000 0.0810 0.2447 0.4182 0.5771 0.7033 0.7838 0.8109 0.7826 0.7029 0.5809 0.4309 0.2725 0.1205 0.0005
```
阅读全文