Quick question about elementwise
5 次查看(过去 30 天)
显示 更早的评论
I have a piece of code that works without the .* and another that doesn't - can't work out why. This is the one that works
close all
clear all
fo = 4; %Frequency of the sine wave
Fs = 100; %Sampling rate
Ts = 1/Fs; %Sampling time interval
t = 0:Ts:1-Ts;
n = length(t); %Number of samples
x = 2*sin(2*pi*fo*t);
[XfreqD,freqRng] = positiveFFT(x,Fs);
stem(freqRng,abs(XfreqD));
Also, the function that one uses is here -
function[X,freq]=positiveFFT(x,Fs)
N=length(x);
k=0:N-1;
T=N/Fs;
freq=k/T; %Create the frequency range
X=fft(x)/N; %normalise the data
cutOff = ceil(N/2);
X = X(1:cutOff);
freq = freq(1:cutOff);
Then my code - the one that doesn't work is here. It's asking or .^ etc.
close all; clear all
t0=0.05;w0=600*pi;q=5;
%t=linspace(-0.1,0.1,fs);
fs = 100; %Sampling rate
Ts = 1/fs; %Sampling time interval
t = 0:Ts:1-Ts;
n = length(t); %Number of samples
x=exp(-(t/t0)^2)*cos(w0*(1-q*t)*t);
[XfreqD,freqRng] = positiveFFT(x,fs);
stem(freqRng,abs(XfreqD));
This version works - but I have no idea whether it's right or not. Is there a good way of checking?
close all; clear all t0=0.05;w0=600*pi;q=5; %t=linspace(-0.1,0.1,Fs); Fs = 100; %Sampling rate Ts = 1/Fs; %Sampling time interval t = 0:Ts:1-Ts; n = length(t); %Number of samples x=exp(-(t/t0).^2).*cos(w0*(1-q.*t).*t); [XfreqD,freqRng] = positiveFFT(x,Fs); stem(freqRng,abs(XfreqD));
3 个评论
Matt Fig
2012-11-2
I have a piece of code that works without the .* and another that doesn't - can't work out why. This is the one that works
close all
clear all
fo = 4; %Frequency of the sine wave
Fs = 100; %Sampling rate
Ts = 1/Fs; %Sampling time interval
t = 0:Ts:1-Ts;
n = length(t); %Number of samples
x = 2*sin(2*pi*fo*t);
[XfreqD,freqRng] = positiveFFT(x,Fs);
stem(freqRng,abs(XfreqD));
Also, the function that one uses is here -
function[X,freq]=positiveFFT(x,Fs)
N=length(x);
k=0:N-1;
T=N/Fs;
freq=k/T; %Create the frequency range
X=fft(x)/N; %normalise the data
cutOff = ceil(N/2);
X = X(1:cutOff);
freq = freq(1:cutOff);
Then my code - the one that doesn't work is here. It's asking or .^ etc.
close all; clear all
t0=0.05;w0=600*pi;q=5;
%t=linspace(-0.1,0.1,fs);
fs = 100; %Sampling rate
Ts = 1/fs; %Sampling time interval
t = 0:Ts:1-Ts;
n = length(t); %Number of samples
x=exp(-(t/t0)^2)*cos(w0*(1-q*t)*t);
[XfreqD,freqRng] = positiveFFT(x,fs);
stem(freqRng,abs(XfreqD));
This version works - but I have no idea whether it's right or not. Is there a good way of checking?
close all; clear all t0=0.05;w0=600*pi;q=5; %t=linspace(-0.1,0.1,Fs); Fs = 100; %Sampling rate Ts = 1/Fs; %Sampling time interval t = 0:Ts:1-Ts; n = length(t); %Number of samples x=exp(-(t/t0).^2).*cos(w0*(1-q.*t).*t); [XfreqD,freqRng] = positiveFFT(x,Fs); stem(freqRng,abs(XfreqD));
采纳的回答
Wayne King
2012-1-26
Hi Tom, I don't think you need the dot multiplication on q, just
x=exp(-(t/t0).^2).*cos(w0*(1-q*t).*t);
On whether it's right or not, it's not readily apparent to me what you're trying to do with (cos(w0*(1-q*t).*t)
更多回答(0 个)
另请参阅
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!