Hi. I'm realy sorry to ask this, but do I have to load something before I

can use the chirp function? I can't seem to find an m-file for it in the

matlab directory.

thanks

Hi. I'm realy sorry to ask this, but do I have to load something before I

can use the chirp function? I can't seem to find an m-file for it in the

matlab directory.

thanks

can use the chirp function? I can't seem to find an m-file for it in the

matlab directory.

thanks

In article < XXXX@XXXXX.COM >, XXXX@XXXXX.COM

says...

chirp.m is a function in the Signal Processing Toolbox. Perhaps you don't have

that on your path.

--Loren

Hi everybody.

Currently, I'm writing a program using the built-in chirp function.

The duration of my chirp is very short: between 0.4 to 1 microsecond.

When the frequency range of my chirp is between 0 and 10 MHz, my

Chirp is okay and its autocorrelation function gives a sinc function

as the theory says.

But when I change the frequency range between 10 to 20 MHz, then the

sinc is completely degraded. In fact, the amplitude of its side lobes

increase a lot.

I don't think it's a problem of aliasing because my sampling

frequency is very high.

So I don't understand this problem because according to the theory,

the shape of the sinc depends of the bandwidth and not the starting

frequency.

Is there anyone who knows the answer to my problem?

Thanks a lot

Currently, I'm writing a program using the built-in chirp function.

The duration of my chirp is very short: between 0.4 to 1 microsecond.

When the frequency range of my chirp is between 0 and 10 MHz, my

Chirp is okay and its autocorrelation function gives a sinc function

as the theory says.

But when I change the frequency range between 10 to 20 MHz, then the

sinc is completely degraded. In fact, the amplitude of its side lobes

increase a lot.

I don't think it's a problem of aliasing because my sampling

frequency is very high.

So I don't understand this problem because according to the theory,

the shape of the sinc depends of the bandwidth and not the starting

frequency.

Is there anyone who knows the answer to my problem?

Thanks a lot

I want to make a chirp function that varies the frequency on time. I

have tried to use the chirp function but I want to make the chirp

function to do the following:

Have slight noise / begining of the function... increase the

amplitude continue to vary the frequency based on the time. Finally

decrease the amp. at the end of the time desired. I have something

like this; however, it just makes a single jump.

I am not sure what else to do... Sort of new at this whole MATLAB

thing.

See below two methods:

Here is one method I've tried:

% inputs--

% TW: Time bandwidth product

% p: oversampling factor

% sampfreq: sampling frequency to be used

%s: Single LFM chirp created per input specs

%h: The match filter impulse response (i.e. h(t))

%y: (TESTING PURPOSES ONLY)

% The result of passing created chirp through

% match filter

%T: Time duration of LFM chirp (units: sec)

%W: Swept Bandwidth of LFM chirp (units: Hz)

%Ts: Sampling period (1/fs)

sig2=100;

sampfreq=1;

TW=30000;

p=1;

Ts=.0001;

Ts = 1/ (sampfreq) %1/(20*(10 ^6)) % 1 / (p*W)

T = TW * p *Ts

W = TW / T

N = round( T/Ts); % round(T*W*p)

n = [0:N-1]';

s = exp(j*pi* (W/T) *(n*Ts - T/2).^2 );

h = exp(-j*pi* (W/T) *(n*Ts - T/2).^2 );

y = conv(s,h);

for n = 1:length(sig2) %create 700 point signal with chirp

column = 253+n; % chirp in the middle

blank2(1,column)=sig2(1,n);

end

blank2(1,446:700) = 0;

h=h';

for n = 1:length(h)

column = 253+n;

h2(1,column)=h(1,n);

end

h2(1,446:700) = 0;

n = (.2) .* crandn(1,700) ;

q=std(n);

q/(sqrt(10))

mean(real(sig2))

clear blank2noise

blank2noise=blank2+n;

y = conv(blank2noise,h);

figure, plot(real(y));

Method 2:

just trying to use the chirp and trying to sum two different chirps

one from going dc to say 100hz and then from 100hz to 0 again.

have tried to use the chirp function but I want to make the chirp

function to do the following:

Have slight noise / begining of the function... increase the

amplitude continue to vary the frequency based on the time. Finally

decrease the amp. at the end of the time desired. I have something

like this; however, it just makes a single jump.

I am not sure what else to do... Sort of new at this whole MATLAB

thing.

See below two methods:

Here is one method I've tried:

% inputs--

% TW: Time bandwidth product

% p: oversampling factor

% sampfreq: sampling frequency to be used

%s: Single LFM chirp created per input specs

%h: The match filter impulse response (i.e. h(t))

%y: (TESTING PURPOSES ONLY)

% The result of passing created chirp through

% match filter

%T: Time duration of LFM chirp (units: sec)

%W: Swept Bandwidth of LFM chirp (units: Hz)

%Ts: Sampling period (1/fs)

sig2=100;

sampfreq=1;

TW=30000;

p=1;

Ts=.0001;

Ts = 1/ (sampfreq) %1/(20*(10 ^6)) % 1 / (p*W)

T = TW * p *Ts

W = TW / T

N = round( T/Ts); % round(T*W*p)

n = [0:N-1]';

s = exp(j*pi* (W/T) *(n*Ts - T/2).^2 );

h = exp(-j*pi* (W/T) *(n*Ts - T/2).^2 );

y = conv(s,h);

for n = 1:length(sig2) %create 700 point signal with chirp

column = 253+n; % chirp in the middle

blank2(1,column)=sig2(1,n);

end

blank2(1,446:700) = 0;

h=h';

for n = 1:length(h)

column = 253+n;

h2(1,column)=h(1,n);

end

h2(1,446:700) = 0;

n = (.2) .* crandn(1,700) ;

q=std(n);

q/(sqrt(10))

mean(real(sig2))

clear blank2noise

blank2noise=blank2+n;

y = conv(blank2noise,h);

figure, plot(real(y));

Method 2:

just trying to use the chirp and trying to sum two different chirps

one from going dc to say 100hz and then from 100hz to 0 again.

I want to create a chirp function that looks like the following

description:

time varying harmonic /w amplitude at near zero going to X amount and

then decreasing back to 0.

Any suggestions?

description:

time varying harmonic /w amplitude at near zero going to X amount and

then decreasing back to 0.

Any suggestions?

Actually sorry about this.

What I ment to really ask was this:

I am trying to make an LFM chirp however everytime i make one I get a

weird fourier transform. I am trying to get it so that it looks like

this:

< http://cnx.org/content/m11718/latest/> ;

I am using the following code. Anyone suggestions?

sig2=100;

sampfreq=50;

TW=50;

p=10;

Ts=.001;

Ts = 1/ (sampfreq) %1/(20*(10 ^6)) % 1 / (p*W)

T = TW * p *Ts

W = TW / T

N = round( T/Ts); % round(T*W*p)

n = [0:N-1]';

s = exp(j*pi* (W/T) *(n*Ts - T/2).^2 );

h = exp(-j*pi* (W/T) *(n*Ts - T/2).^2 );

y = conv(s,h);

for n = 1:length(sig2) %create 700 point signal with chirp

column = 253+n; % chirp in the middle

blank2(1,column)=sig2(1,n);

end

blank2(1,446:700) = 0;

clear blank2noise

blank2noise=blank2+n;

% figure, plot(real(blank2noise))

y = conv(blank2noise,h);

figure, plot(real(y))

z=abs(fft(y));

figure,plot(z);

What I ment to really ask was this:

I am trying to make an LFM chirp however everytime i make one I get a

weird fourier transform. I am trying to get it so that it looks like

this:

< http://cnx.org/content/m11718/latest/> ;

I am using the following code. Anyone suggestions?

sig2=100;

sampfreq=50;

TW=50;

p=10;

Ts=.001;

Ts = 1/ (sampfreq) %1/(20*(10 ^6)) % 1 / (p*W)

T = TW * p *Ts

W = TW / T

N = round( T/Ts); % round(T*W*p)

n = [0:N-1]';

s = exp(j*pi* (W/T) *(n*Ts - T/2).^2 );

h = exp(-j*pi* (W/T) *(n*Ts - T/2).^2 );

y = conv(s,h);

for n = 1:length(sig2) %create 700 point signal with chirp

column = 253+n; % chirp in the middle

blank2(1,column)=sig2(1,n);

end

blank2(1,446:700) = 0;

clear blank2noise

blank2noise=blank2+n;

% figure, plot(real(blank2noise))

y = conv(blank2noise,h);

figure, plot(real(y))

z=abs(fft(y));

figure,plot(z);

Similar Threads

1. chirp function (for dummies) - MATLAB

2. transfer function estimation for 1/s^2 using fft and chirp input signal

Hello, I am trying to estimate the transfer function as a form k*1/s^2 using chirp signal(0.1Hz - 100Hz at the sampling time of 0.0025s). But two bode plots of the transfer functions, one from the true transfer function, the other from fft calculation, are not matching. I made a simulink model with a chirp block as an input, a transfer function block of 1/s^2, and two 'To Workspace block' to save the input, output data. After running the simulation of my model, I run my fft m-file to do fft, calculate the estimated transfer function as fft(output)./fft(input), and plot the bode diagram. Then I expected the bode plot of the result from fft would match the bode plot of true 1/s^2, but they are not matching at all. The bode plot from fft calculation looks to have -10 db slope instead of -20 db slope and have higher magnitude than the true one. However, if I try to estimate 1/(s^2 + 0.25s + 1), both bode plots from fft and the true transfer function are exactly matching. I wonder what is making the difference between two bode plots for 1/s^2. Is there anyone who had this kind of problem? I appreciate your help in advance. Thanks Jinwoo

3. matlab code for Chirp waveform (frequency modulated pulse)

I am doing an FFT of a chirp function. I am having problems with realizing the FFT! The FFT should when p =1 loo like the signal in. It doesn't Any suggestions?! Thanks... The following is the m-code: function s = dtFMchirp(p,TW) % DCHIRP generate a sampled chirp signal % usage s = dchirp(TW,p) % s : samples of a digital "chirp" signal % exp(j(W/T)pi*t^2) -T/2 <= t < T/2 % TW : time-bandwidth product % p : sample at p times the Nyquist rate (W) %p=10; %TW=50; %N = p*TW; %n = 0:N; %alpha = 1/(2*p*p*TW); %s = exp(j*2*pi*alpha*((n-.5*N).^2)); %x=real(s); %plot(x); %length1=length(x); %figure; %fftx=fft(x,length1); %fftx=abs(fftx); %plot(fftx); close all; clear; p=1; TW=50; N = p*TW; n = 0:N; alpha = 1/(2*p*p*TW); s = exp(j*2*pi*alpha*((n-.5*N).^2)); figure(1); x=real(s); plot(x); length1=length(x); fftx=fft(x,length1); k=round(length1/2); fftx=[fftx(k:end) fftx(1:k)]; fftx=abs(fftx); fftx=abs(20*log10(fftx)); x=-2:4/length1:2; figure(3) plot(fftx);

5. DFT of linear FM chirp and CW burst - MATLAB

Dear All, Could someone tell me how to implement INVERSE chirp z transform in Matlab. Matlab has chirp z transform in signal processing toolbox but no inverse - I read somewhere that it is possible to obtain inverse chirp z transform by using chirp z transform. How to do it? Maybe somebody would be willing to shed some light. Regards Pawel

7. how to simulate LFM Chirp signal using MATLAB? - MATLAB

8. Linear chirp wigner plot, wrong mesh plot

I have a problem with using the Wigner function and representing a linear chirp signal in the time-frequency domain. When I use my algorithm and the fft function the mesh plot shows a signal whose frequency is decreasing with time whereas the signal clearly represents a signal whose frequency is increasing linearly with time. I believe that the autocorrelation function is correct but I am not getting the right graph and suspect that the fft command is not performing correctly. Grateful for any hints!!!!!!!!!!!!!!!!!!! fs = 500; % Sample frequency N = 512; % Signal length f1 = 20; % Starting frequency in Hz f2 = 200; % Frequency after 1 second (end) in Hz T=(1/fs); % Sample Period % Construct “chirp” signal t = (1:N)/fs; s = chirp(t,f1,1,f2); % Chirp based on array t % Wigner-Ville analysis figure ; plot(s); xlabel('Point'); % Axis labels soundsc(s,fs); % Play signal s = hilbert(s); % Get analytic function to remove problems with cross products %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Converts input signal to Column Vector if not already so [N,scol] = size(s); % N,scol represents number of rows and cols respectively if N < scol % Make signal column vector s = s'; % Standard (non-complex) transpose N = scol; end R = zeros(N,N); % Initialize output t = (1:N)/fs; % Calculate time vector f = (1:N)*fs/(2*N); % Calculate frequency vector for k = 1:N; lagmax = min ([k-1,N-k,round(N/2)-1]); lag = -lagmax:lagmax; R(lag + round(N/2),k) = s(k+lag).*conj(s(k-lag)); end R = circshift(R,round(N/2)+1 -mod(N,2)); WD = 2*T*real(fft(R)); % Returns the discrete fourier tranform of WD figure; mesh(t,f,WD); % Mesh Plot view(2); hold on; xlabel('Time'); % Axis labels ylabel('Frequency');