Chris' Page on Aliasing using MatLab

From Class Wiki
Revision as of 22:05, 1 November 2007 by ChrisRas (talk | contribs)
Jump to navigation Jump to search

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.


Chirp41000b.jpg

Media:44100hz.ogg


This one is the same script and parameters except the sample rate has been changed to 8000 Hertz.

Chirp8000b.jpg

Media:8000hz.ogg


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