Chris' Page on Aliasing using MatLab: Difference between revisions
No edit summary |
No edit summary |
||
Line 12: | Line 12: | ||
This one is the same script and parameters except the sample rate has been changed to 8000 Hertz. |
This one is the same script and parameters except the sample rate has been changed to 8000 Hertz. |
||
[[Image:Chirp8000.jpg]] |
[[Image:Chirp8000.jpg]] |
||
'''Matlab Program''' |
|||
% Chris Rasmussen |
|||
% Matlab assignment |
|||
% Show Nyquist stuff |
|||
clc |
|||
%****************% |
|||
% Parameters |
|||
duration = 8 |
|||
fmax = 20000 |
|||
fmin = 20 |
|||
samplerate = 8000 |
|||
%****************% |
|||
%****************% |
|||
% Setup Soundcard |
|||
% Will still work if this is removed, you just won't hear anything |
|||
% It works with my onboard soundcard with Vista. |
|||
AO = analogoutput('winsound'); |
|||
chan = addchannel(AO,1); |
|||
set(AO,'SampleRate',samplerate); |
|||
set(AO,'TriggerType','Manual'); |
|||
ActualRate = get(AO,'SampleRate') |
|||
%****************% |
|||
%****************% |
|||
% Setup arrays |
|||
totalsamples = ActualRate*duration; |
|||
t = 0:1./ActualRate:duration; |
|||
y= 0.2 .* chirp(t,fmin,duration, fmax,'q',[],'concave'); |
|||
%****************% |
|||
%****************% |
|||
% Write data to soundcard and play |
|||
% Will still work if this is removed, you just won't hear anything |
|||
putdata(AO,y') |
|||
start(AO) |
|||
trigger(AO) |
|||
waittilstop(AO,duration+1) |
|||
%****************% |
|||
%****************% |
|||
% Plot raw data |
|||
figure(1) |
|||
plot(y) |
|||
title('Waveform') |
|||
%****************% |
|||
%****************% |
|||
% Plot spectragram (uses FFT) |
|||
figure(3), specgram(y, 256, samplerate); |
|||
title('Quadratic Sine Sweep') |
|||
set(gcf,'Color',[1 1 1]); |
|||
%****************% |
|||
wavwrite(y,samplerate,16,'File.wav') |
|||
%****************% |
|||
% Picking up the messes |
|||
delete(AO) |
|||
clear AO |
|||
clear all |
Revision as of 10:20, 1 November 2007
Demo of Aliasing Using Matlab
Frequencies above half the sample rate will produce aliasing. This should appear as a lower frequency signal.
Below is a spectrogram of a quadratic sweep from 20 Hertz to 20,000 Hertz using a 441000 Hertz sample rate.
Currently the Y-Axis frequency scale is wrong, the max should be 20,000.
This one is the same script and parameters except the sample rate has been changed to 8000 Hertz.
File:Chirp8000.jpg
Matlab Program
% Chris Rasmussen
% Matlab assignment
% Show Nyquist stuff
clc
%****************%
% Parameters
duration = 8
fmax = 20000
fmin = 20
samplerate = 8000
%****************%
%****************%
% Setup Soundcard
% Will still work if this is removed, you just won't hear anything
% It works with my onboard soundcard with Vista.
AO = analogoutput('winsound');
chan = addchannel(AO,1);
set(AO,'SampleRate',samplerate);
set(AO,'TriggerType','Manual');
ActualRate = get(AO,'SampleRate')
%****************%
%****************%
% Setup arrays
totalsamples = ActualRate*duration;
t = 0:1./ActualRate:duration;
y= 0.2 .* chirp(t,fmin,duration, fmax,'q',[],'concave');
%****************%
%****************%
% Write data to soundcard and play
% Will still work if this is removed, you just won't hear anything
putdata(AO,y')
start(AO)
trigger(AO)
waittilstop(AO,duration+1)
%****************%
%****************%
% Plot raw data
figure(1)
plot(y)
title('Waveform')
%****************%
%****************%
% Plot spectragram (uses FFT)
figure(3), specgram(y, 256, samplerate);
title('Quadratic Sine Sweep')
set(gcf,'Color',[1 1 1]);
%****************%
wavwrite(y,samplerate,16,'File.wav')
%****************%
% Picking up the messes
delete(AO)
clear AO
clear all