fft (x, n)没有内建的函数n >大小(x)

4视图(30天)
我在找fft和传输线fff函数代码(x, n) n >大小(x)。
我发现在这里:
它适用于所有fft (x)与传输线(x), n =大小为n > (x)但不是大小(x)
函数Xk = myfft (x)
N =长度(x);% DFT的基本周期
n = 0:1: n - 1;% n行向量
k = 0:1: n - 1;% k行向量
WN = exp(1 * 2 *π/ N);% Wn因素
nk = n ' * k;%创建一个N×N矩阵nk的价值观
WNnk = WN。^ nk;% DFT矩阵
Xk = x * WNnk;%的行向量DFT系数
函数x_hat = myifft (ftx)
N =长度(ftx);% DFT的基本周期
n = 0:1: n - 1;
k = 0:1: n - 1;
WN = exp(1 * 2 *π/ N);
nk = n ' * k;
WNnk = WN。^ (nk);%,台湾矩阵
x_hat = (ftx * WNnk) / N;%,台湾值的行向量
x_hat =实际(x_hat);
我怎么修改这个代码(或采取其他)为我的任务?
谢谢!

接受的答案

艾尔
艾尔 2023年3月16日
修改现有的代码对于FFT函数,您可以使用下面的代码:
函数Xk = myfft (x, n)
N =长度(x);% DFT的基本周期
如果N <
x = [x, 0 (1, n n)];
N = N;
结束
n = 0:1: n - 1;% n行向量
k = 0:1: n - 1;% k行向量
WN = exp (1 i2pi / N);% Wn因素
nk = n ' * k;%创建一个N×N矩阵nk的价值观
WNnk = WN。^ nk;% DFT矩阵
Xk = x * WNnk;%的行向量DFT系数
修改包括' n '一个额外的参数传递给函数指定所需的FFT输出的大小,和检查如果输入“x”的长度小于“n”,在这种情况下进行补零长度等于“n”。
同样,为传输线函数修改现有的代码,您可以使用下面的代码:
函数x_hat = myifft (ftx, n)
N =长度(ftx);% DFT的基本周期
如果N <
ftx = [ftx, 0 (1, n n)];
N = N;
结束
n = 0:1: n - 1;% n行向量
k = 0:1: n - 1;% k行向量
WN = exp (1 i2pi / N);% Wn因素
nk = n ' * k;%创建一个N×N矩阵nk的价值观
WNnk = WN。^ (nk);%,台湾矩阵
x_hat = (ftx * WNnk) / N;%,台湾值的行向量
x_hat =实际(x_hat);

更多的答案(0)

类别

找到更多的在傅里叶分析和过滤帮助中心文件交换

s manbetx 845


释放

R2020b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!