【问题标题】:printing FFT at multiple points in tabulated form (matrix form)以表格形式(矩阵形式)在多个点打印 FFT
【发布时间】:2013-09-22 23:00:46
【问题描述】:

我已经使用 C++ 模拟了时域中多个点的电压。输出以表格形式打印出来(即第一列中的时间和以下列中每个点的电压)。
我是 Matlab 新手,但使用它来 fft 上一个文件,我需要在第一列中获取频率表,然后是每个点的频域值(在同一个文件中)。
我已经尝试了所有方法来生成这样的表格,但它总是显示在一列矩阵中(即所有数据都设置在一列矩阵中)。

我需要它的形式:

╔═══════════════════════════════════════════════╗
║     *f     V1(f)     V2(f)    .....    Vn(f)* ║
╠═══════════════════════════════════════════════╣
║                                               ║
║     f1      ..        ..               ..     ║
║                                               ║
║     f2      ..        ..               ..     ║
║                                               ║
║     f3      ..        ..               ..     ║
╚═══════════════════════════════════════════════╝

另外,如果我能够创建这样的矩阵,我怎样才能得到它的转置(再次将它 fft 到空间)?

代码如下:

itr=importdata('filename.itr');

L=length(itr);             

T=itr(L,1);                

dt=itr(2,1);   

t=(0:dt:T-dt);

fs=1/dt;

FR_length=L;

[M,N]=size(itr(1:end,1:end));

f=-FR_length/2:FR_length/2-1;

f=f3.*(fs/FR_length);

for n=2:N

   FR=fft(itr(:,n),FR_length);   

end

谁能帮我解决这个问题? 非常感谢:)

【问题讨论】:

    标签: matlab matrix export fft transpose


    【解决方案1】:

    我根据我假设的输入 itr 的结构更改了您的一些代码:

    [L,N]=size(itr);                  
    dt=itr(2,1);       
    fs=1/dt;        
    f=-L/2:L/2-1;    
    f=f*(fs/L);    
    FR =fftshift(fft(itr(:,2:end)));   
    disp([f' FR])
    

    最后一行将在命令窗口中以表格形式显示您的数据。 请注意,我删除了循环,因为 matlab 允许矢量化表示法。还添加了fftshift 以使您的频率和幅度正确排列。 您可以使用savefprintf 写入文件,例如如下(您需要更改格式字符串以匹配数据列数):

    fid=fopen('test.dat','w')
    fprintf(fid,'%f %f %f \n',[f ; real(FR)' ; imag(FR)'])
    fclose(fid)
    

    【讨论】:

    • 非常感谢您快速而有帮助的回复。我尝试了“disp”命令和“fopen、fprintf、fclose”过程,但仍然收到错误“CAT arguments dimensions are not consistent”。有什么建议吗?
    • @user2804069 我会检查您要连接的数组的大小(f 和 FR)。对于初学者,还要检查 itr 的大小(参见上面的第一行),L 应该是时间步数,N 是系列数 + 1。如果 L,N 不正确,请将 itr 转置为.'
    • 请注意,我在上面做了一个小改动,删除了不需要的预分配。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-01
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多