声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1179|回复: 5

[编程技巧] 求助一个错误,无法解决

[复制链接]
发表于 2009-3-23 19:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
%频域积分
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear;
clc;
close all hidden;
fni=input('频域积分-输入数据文件名:','s');
fid=fopen(fni,'r');
fs=44100;                   %采样频率
fmin=0;                     %最小截止频率
fmax=3000;                  %最大截止频率
c=8192;                       %单位变换系数
it=1;                       %积分次数
sx='时间';                         %横向坐标轴的标注
sy1='速度';                        %纵向坐标轴输入单位的标注
sy2='位移';                        %纵向坐标轴输出单位的标注
x=fscanf(fid,'%f',[1 8192]); %输入数据存成行向量
status=fclose(fid);
n=length(x);
t=0:1/fs:(n-1)/fs;          %建立时间向量
nfft=2^nextpow2(n);         %大于并最接近n的2的幂次方为FFT长度
y=fft(x,nfft);              %FFT变换
df=fs/nfft;                 %计算频率间隔
ni=round(fmin/df+1);        %计算指定频带对应频率数组的下表
na=round(fmax/df+1);        
dw=2*pi*df;                 %计算圆周率间隔(rad/s)
w1=0:dw:2*pi*(0.5*fs-df);   %建立正的离散圆频率向量
w2=2*pi*(0.5*fs-df):-dw:0;  %建立负的离散元频率向量
w=[w1,w2];                  %将正负圆频率向量组成一个向量
w=w.^it;
a=zeros(1,nfft);
a(2:nfft-1)=y(2:nfft-1)./w(2:nfft-1);
if it==2
    y=-a;
else
    real (y) = imag (a);
    imag (y) = -real (a);
end

a=zeros(1,nfft);
a(ni:na)=y(ni:na);
a(nfft-na+1:nfft-ni+1)=y(nfft-na+1:nfft-ni+1);
y=ifft(a,nfft);
y=real(y(1:n))*c;
subplot(2,1,1);
plot(t,x);
xlabel(sx);
ylabel(sy1);
grid on;
subplot(2,1,2);
plot(t,y);
xlabel(sx);
ylabel(sy2);
grid on
红字处错误:说Subscript indices must either be real positive integers or logicals.
a和y均为复数且系数为浮点数。
回复
分享到:

使用道具 举报

发表于 2009-3-23 21:19 | 显示全部楼层
try
y=imag(a)-i*real(a);
发表于 2009-3-23 21:35 | 显示全部楼层
这错误来得有点诡异。。
发表于 2009-3-23 21:43 | 显示全部楼层
real(y)在等式右边是没问题的, 但在左边代表要被赋值! 即y已经被当成index, real被当成变数而非函数!
试试
y=1:2; real(y)=[2,3], whos
发表于 2009-3-24 08:48 | 显示全部楼层
主任在沙发给的答案是对的:
y=imag(a)-i*real(a);
等号左边的y不应带有函数。
 楼主| 发表于 2009-3-24 10:30 | 显示全部楼层
谢谢,主任的方法可以。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-17 10:48 , Processed in 0.060165 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表