Obtaining frequency response from transfer function
2 views (last 30 days)
Show older comments
Hi there,
I am trying to find the frequency response of this transfer function.
.

.
This is my effort which I believe to be correct of putting it into MATLAB. I do change the format a little to avoid divide by zero errors.
.

.
And here is my MATLAB code:
.
%%Modelling an amplifier
clc; clear; close all;
%%All important D factor (Distortion, also known in some parts as Distance)
Dist = 1;
fs = 44100; % Sampling frequency (Hz)
T = 1/fs; % Timestep
N = 1000; % Samples
f = -fs/2:fs/N:fs/2 - fs/N;
%%Circuit Parameters - Level 1
Rt = Dist * 100e3;
Rb = (1-Dist) * 100e3 + 4.7e3;
Cz = 1e-6;
Cc = 250e-12;
%%Substitutions - Level 2
a = Rt*Cc;
b = Rb*Cz;
c = Rb*Cc;
%%Substitutions - Level 3
x = a*b*c;
y = a*b + a*c + b*c;
z = a*c + b*c;
% Num and den of H(s)
sA = [c z x];
sB = [c y x];
% S domain frequency response
hS = freqs(sB,sA,f);
% Plot
semilogx(f, 20*log(abs(hS)));
xlabel('Frequency (Hz)');
ylabel('Magnitude Response (dB)');
title('H(s)');
end
.
This is the result I am going for.. (Dist == D)
.

.
The result I am getting is blatantly wrong.
Any help would be very appreciated!
Cheers
0 Comments
Answers (0)
See Also
Categories
Find more on Spectral Analysis in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!