Pole zero

I need to calculate IIR filter coefficients to be used in Labview starting from s-domain num/den  transfer functions. The filters I need are really a lot.
I have the Digital Filter Design toolikit, but it accepts only Zero-poles in z plane.
I also have the Control Design toolkit, that I'm using in order to convert my transfer functions from s-domain num/den to Zero-Pole discrete representation. Unfortunately results I get don't work at all (that is the filters designed are very different than expected).
Substantially I need to recreate the piece of software in matlab as follows.
Is there anyone who can help me?
thanks in advance
giovanni
function y = myfilter(x,fs)
% y output signal,
% x input signal,
% fs sampling frequency Hz
% bilinear transformation algorithm is used
f1 = 0.4;
f2 = 100;
f3 = 12.5;
f4 = 12.5;
Q4 = 0.63;
f5 = 2.37;
Q5 = 0.91;
f6 = 3.35;
Q6 = 0.91;
% Note that in the function “butter” the variables Q1 and Q2 are
% effectively set to equal to 1/sqrt(2), therefore they don’t need
% to be explicitly set here.
w3 = 2*pi*f3;
w4 = 2*pi*f4;
w5 = 2*pi*f5;
w6 = 2*pi*f6;
nyq = fs/2; % Nyquist frequency
% determine parameters for first filter
[b1,a1] = butter(2,f1/nyq,'high'); % High pass
[b2,a2] = butter(2,f2/nyq); % Low pass
% determine parameters for second filter
B3 = [1/w3 1];
A3 = [1/w4/w4 1/Q4/w4 1];
[b3,a3] = bilinear(B3,A3,fs);
% determine parameters for third filter
B4 = [1/w5/w5 1/Q5/w5 1]*w5*w5/w6/w6;
A4 = [1/w6/w6 1/Q6/w6 1];
[b4,a4] = bilinear(B4,A4,fs);
% Apply filter to input signal vector x (output to signal vector y)
y = filter(b2,a2,x);
y = filter(b1,a1,y);
y = filter(b3,a3,y);
y = filter(b4,a4,y);

Hi,
try to see the following link: DSP Laboratory: IIR Filter Design via the Bilinear Transformation
http://cnx.rice.edu/content/m13039/latest/
I hope this can help you.
The bilinear function is an alghoritmic transormation native of matlab language, so it has been implemented in other languages.
Best Regards
LencioniM

Similar Messages

  • Problem with Pole zero analysis using multisim

    Problem with Pole zero analysis using multisim
    When I tried to find input impedance function's pole zero of a parallel LC network using Multisim
    pole zero analysis, I get following message
    | | doAnalyses: matrix is singular
    | |
    | |
    | | pz simulation(s) aborted "
    The circuit as well as log file attached.
    How to correctly perform pole zero analysis?
    Solved!
    Go to Solution.
    Attachments:
    Parallel LC.JPG ‏8 KB
    parallel LC.txt ‏7 KB

    dear sir,
    thanks for your earlier reply to my question on pole zero analysis
    one more problem on pole zero analysis ;
    i tried to do pole zero analysis for circuit(shown in attached file where C1=1/6F(167mF) C2=5/18F(278mF) for which
    z(s)= (s^2+9)(s^2+1)
               s(s^2+4)
    for which zeros are at  +/-3j ,+/-1j
                  poles at       0 ,+/-2j          as per theory:
    But multisim gives different values (shown in attached file)
    what is the problem?
    please clarify.
    thanks & regards
    sagar vanarase
    Attachments:
    1portLC.JPG ‏219 KB

  • Pole zero map

    Hello:
    How can I map pole and zero on s plane without control and design module.
    I have transfer function. I like to plot/map where is the poles and zeroa  in s domain.
    I have complex pole and no zero.
    Please help.
    Thanks
    AK
    Moin

    duplicate post
    Please keep your question in one thread.  You had already started receiving help in that thread.  But you marked your own questions as the solution, then abandoned it.
    If it's not solved (which I'm sure it isn't because it asked another question), unmark your post in that thread and answer the questions Cory asked you.

  • Using laplace transform function to get transform in s-domain

    I want to know that how it would be possible to get the laplace transform of a function(for e.g. Ramp) in s-domain using the Laplace Transform Real.vi function in LabView 2012. I need to get the laplace transform in s-domain so that i can plot the Pole-Zero graph or Bode plot of the transform.

    I want to know that how it would be possible to get the laplace transform of a function(for e.g. Ramp) in s-domain using the Laplace Transform Real.vi function in LabView 2012. I need to get the laplace transform in s-domain so that i can plot the Pole-Zero graph or Bode plot of the transform.

  • Error "Wire: is a member of a cycle

    I am doing decoupling control of MIMO system in LabVIEW Control Design and Simulation module. Simulating the controller and the plant transfer functions, gives the error "Wire: is a member of a cycle".I understand this is coz of the Three transfer functions in the trnsfer matrix having equal number of poles & zeroes showing Direct feed through behavior. As I can make no changes in the plant or controller models, can anyone suggest a possible solution for this?plzz
    Solved!
    Go to Solution.

    krishnapriyapg wrote:
    Sir , the output from 7 is given to the negative node of the summer near level SP(to 10) . In the bd, it looks like both are given to the same node is just a mistake happened while cleaning the wires in the diagram . However the connections were correct. I have attached the screen shot again.
    oops never mind too early in the morning
    Bill
    (Mid-Level minion.)
    My support system ensures that I don't look totally incompetent.
    Proud to say that I've progressed beyond knowing just enough to be dangerous. I now know enough to know that I have no clue about anything at all.

  • MathScript/LabVIEW residue bug

    Try this in MathScript:
    >>bb = [6 -8];
    >>aa = [1 -1 -6];
    >>[r,p,k] = residue(bb, aa)
    r =      4   
               2   
    p =     -2    
               3
    k =      0    
    Then multiply both the numerator and denominator by z:
    >>bb = [6 -8 0];
    >>aa = [1 -1 -6 0];
    >>[r,p,k] = residue(bb, aa)
    r =      -8   
               6   
    p =     -2    
               3
    k =      0 
    Wow, you get a different, wrong answer.  Matlab returns the same answer in both cases.
    Take this a step further and use the Partial Fraction Expansion VI.  It gives the same wrong answer!
    What's up?

    Hi Mark,
    You've located a problem with the LabVIEW MathScript function 'residue'.
    With your example
    >>bb = [6 -8 0];
    >>aa = [1 -1 -6 0];
    >>[r,p,k] = residue(bb, aa)
    the problem arises when the parameters bb and aa describe polynomials that are multiples of 'z' and have a nontrivial greatest common divisor:
    bb represents 6z^2-8*z
    aa represents z^3-z^2-6z
    As you noted, the problem occurs due to an underlying problem in Partial Fraction Expansion, a VI from the LabVIEW function palette (Mathematics->Polynomial->Rational Polynomial) that is being called "under-the-hood" when you invoke the LabVIEW MathScript 'residue' command.
    One way to avoid this problem is to do pole-zero cancellation before applying 'residue'
    Alternatively, you can perturb aa or bb slightly by adding some small constant terms, for instance:
    >>bb=[6 -8 1e-6]
    The problems described here are something that our engineers are aware of and are planning to fix in a future release.
    --Sam
    Sam Shearman

  • NI PXIe 4141 Custom transient response

    Hi All,
    I am using NI PXIe 4141 SMU. I am trying control the Settling Time and Overshoot of step response of my Voltage output. I am trying to use "Custom Transient Response (CTR)" configuration for this purpose. We have following three parameters that we can use to configure the CTR.
    Pole-Zero Ration
    Compensation Frequency
    Gain BW
    I have tried to change the values manually and check the system response. I couldn't see any change in the Transient Response of SMU. Is there any documentation available to calculate those parameters according to my loading condition? 
    Is there anyone who worked on such setup?
    Please help.
    Anandelamaran Duraisamy,
    Senior Project Engineer,
    Soliton Technologies (P) Ltd,
    www.solitontech.com

  • Bode plot

    Hi,
    Is it possible to obtain bode magnitude plot and phase plot from FFTed frequency response curve without using the transfer function?how
    I have the frequency response curve obtained from milling machine using Labview 2014
    Can I use Express>signal analysis>spectral measurements >Magnitude (peak),dB to obtain a bode plot??
    Is there any other choice to obtain this?
    Thanks,
    Karthick

    A bode plot is by definition a drawing with the poles and zeroes of the transfer function of a system.
    What you want to do is called the Frequency/Phase response of your system.
    Without the pole/zero data, it is of course possible. The process goes something like this:
    You sweep a sine over your wanted frequency range, and from FFT, you get the Frequency magnitude and phase for each frequency measured.
    then you make two plots, one with log Frequency / Amplitude, and with with log Frequency / Phase.
    And there you have your Frequency / Phase response.
    Old analog instruments used a sine sweep and a peak detector for amplitude, instead of FFT, very cool, but a bit tricky to get the phase response.

  • I need a sample vi that can plot a transfer function given zeroes and poles (It should allow the user to input zeroes and poles). It should be done in the S domain.The user should be allowed to put poles and zeroes, with frequency

    I need a sample vi that can plot a transfer function given zeroes and poles (It should allow the user to input zeroes and poles). The user should be allowed to put poles and zeroes, with frequency. DONE IN S DOMAIN.

    I have created a VI (LabVIEW 6.1) that does what you want. Note that the poles and zeros have to be entered correctly that is in Rad/s and typically with negative real part. The VI offers you all options for lin/log frequency axis, magnitude in dB or not, phase in Radians or Degrees etc...
    The VI is written with "academic" in mind, so it is not optimized for performances but (hopefully) for clarity. I hope this will work for you.
    Attachments:
    S-Domain_Transfer_Function_from_Poles-Zeros.vi ‏167 KB

  • I need a sample vi that can plot a transfer function given zeroes and poles (It should allow the user to input zeroes and poles)

    I need a sample vi that can plot a transfer function given zeroes and poles (It should allow the user to input zeroes and poles). The user should be allowed to put poles and zeroes, with frequency.

    Check the answer to your other posting
    http://exchange.ni.com/servlet/ProcessRequest?RHIVEID=101&RPAGEID=135&HOID=50650000000800000052A90000&UCATEGORY_0=_49_%24_6_&UCATEGORY_S=0

  • Zeros-poles-gain configuration

    Bonjour;
    Je travaille avec LV 2010
    - Je n'arrive pas a configurer un terminal d'entrée pour la fonction zero-pole-gain avec un cluster  de tableaux (z,p,k)  issus d'une identification non-entière.comme illustré dans les pièces jointes.
    - Comment faire pour indexer le signal d'entrée dans la boucle de simulation; Faut-il generer un tableau exterieur a la boucle et comment indexer le signal en fonction de " l'itération" comme pour les  boucles While ou For.
    Merci pour votre aide et  à bientot.
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    ni.png ‏47 KB
    Sim.vi ‏119 KB

    Bonjour,
    Merci d'avoir posté sur le forum NI.
    Quand j'ouvre votre VI je n'ai aucun fil brisés sur la fonction Zero-Pole-Gain. Il est executable.
    Pour votre problème d'indexation, vous pouvez utiliser une variable que vous venez incrémenter à chaques tour de la boucle de simulation. Pour cela je conseille d'utiliser une Variable Globale Fonctionnelle comme celle jointe.
    Cordialement,
    Nicolas M.
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    Journées Techniques LabVIEW 2012 : du 27 septembre au 22 novembre
    2 sessions en parallèle : Débuter a...
    Pièces jointes :
    FGV.vi ‏11 KB

  • Use of zero-pole.vi

    Hello!
    Can any body explain to me why the step-response of the given transferfunction depends on dt?
    Many thanks for your kind endavours
    Peter
    Attachments:
    Test Zero-Pole1.vi ‏42 KB

    Peter,
    Yes, the dT influence is present in any simulation accomplished by the computer and even RK4 would suffer because of it. However, the Euler (also know as RK1) has a peculiar characteristic: when the sampling time grows large, because it can only see the next step ahead, the error resulting from this will be too great and it actually will become unstable for dt bigger than 0.8 (for this problem). If you try to use RK 2 or 3, the dT until it gets unstable increases because it can correct with intermediate steps. between major time steps. It works like you increase the number of sampling for your problem. However, if you keep increasing dT, you will find a point were the sampling time will make the solution unstable. The interesting part about using higher order solvers is that the error doesn't affect much the response.
    I created this example that shows what I said above. It you will need Control Design and Simulation to use it. The Screenshot shows the difference.
    Hope this helps!
    Message Edited by Barp on 03-05-2008 08:06 AM
    Barp - Control and Simulation Group - LabVIEW R&D - National Instruments
    Attachments:
    Differences better RKs.vi ‏160 KB
    RK.PNG ‏37 KB

  • Leading zeros trimmed!

    I am extracting data from a text file and putting it in an SQL Server 2000 database. When I insert fields with leading zeros into the database, the zeros are trimmed away. All my data are string type and I use VARCHAR in the database for those fields.
    When I insert literal strings with leading zeros, the zeros do appear in the database.
    Any help is much appreciated.
    Akz

    This is the code I use to update my SQL Server database. As you can see, 5 strings are declared and initialized; some have leading zeros.
    4451972 129293 040504 015011 000319
    When I open the databse , the leading zeros are missing.
    The database record for the record I just inserted looks like the following:
    4451972 129293 40504 15011 319
    What happens to the leading zeros?
    This is the code:
         String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=CRD_DB";
         Connection con;
         Statement stmt;
         String caller="4451972", called="129293", date="040514", startTime="015011",
    duration="000319";
         try {               
         Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
         } catch(java.lang.ClassNotFoundException e) {
         System.err.print("ClassNotFoundException: ");
         System.err.println(e.getMessage());
         try{
         con = DriverManager.getConnection(url,"pola", "pola" );
         stmt = con.createStatement();
         stmt.executeUpdate("INSERT INTO CRDTableNew values("+caller +"," + called+","+date
    +","+startTime+","+duration+")");
         stmt.close();
         con.close();
         catch(SQLException ex){
         System.err.println("SQLExc.:" + ex.getMessage());
         }

  • TS1440 Following these suggestions, I startup from the Install Disk holding down C. The installation process proceeds as far as "Checking disks..." (part of Select Destination) but hangs up there: the barbershop pole just spins and spins... What do I do n

    Following these suggestions, I startup from the Install Disk holding down C. The installation process proceeds as far as "Checking disks..." (part of Select Destination) but hangs up there: the barbershop pole just spins and spins... What do I do next? This is on an old iBook BTW, 2001 G3, OS X, 10.1.2.

    Likely, but can you try to erase it/format it?
       3. Click the Erase tab.
       4. Click the disclosure triangle to the left of the hard drive icon to display the names of your hard disk volumes and partitions.
       5. Select your Mac OS X volume.
       6. Highlight the drive, select Partition Tab, then Format type... MacOS Extended Journalled, select the Security Options button, choose Zero Out Data, Erase... after completion hopefully you'll be able to get a good install.
    Needs to be Apple Partition Map (APM) partition scheme.

  • Change mode of the excise invoice is showing zero excise values

    H ifriends,
    The change mode of the excise invoice is showing zero excise values.....and the same is reflected in the ARE1
    While creating the excise invoice,its showing BEd/Ed and Shed and after saving,if i check the doc the values are shown aero...
    Thanks
    Sasi

    s

Maybe you are looking for

  • Error "Error in ABAP statement when processing an internal table. table."

    Hello, I am facing the error when tried for GR from SRM portal for my shopping cart and for others created shopping cart. The error is "Error in ABAP statement when processing an internal table. table." I have the central receipient role. Couold any

  • Applet question!!!

    Hello there!!! I have an applet that sends text messages to a remote pc (chat application). I want to send a text message once the user closed the browser or another page is displayed or in general when the applet is no longer running. I tried to use

  • HT5012 How can you add a self signed CA Certificate to iOS 8?

    How Can I add a self signed CA Certificate to an iPad with iOS 8.1?

  • Inserting a MS SQL Server dataset with PHP

    I have a Dreamweaver PHP site, but we use our corporate MS SQL Server 2005 servers for our data. How do I insert a dataset pointing to our MS SQL Server? The default dialog keeps requesting my MySQL server, which of course, I do not have.

  • A clear workaround for JComboBox bug 4199622 please.

    Hi, I'm writing a project management software where you assign a project leader to a project via combo box and in the same step this user must be added to the team member list. Now look what happened! When I open the combo and navigate via arrow keys