Obtaining frequency response from transfer function
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponses (0)
Voir également
Catégories
En savoir plus sur Spectral Analysis dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!