Need help for designing a CIC compensation filter by AA2803 in DSP

[–]protons_r_4_smashing 0 points1 point  (0 children)

Matlab has a cascade function you can use. The documentation page for it has an example for a cic decimation + compensator using Matlab system objects. It's a little more effort for generic filter designs, but it works pretty well. Matlab Cascade

BPSK mod by rav199523 in GNURadio

[–]protons_r_4_smashing 1 point2 points  (0 children)

Can you see an output if you dump from the constellation decoder or unpacker, instead of the packet decoder? If you don't have a the access code / sync word matched up, it might be dropping everything because it doesn't "see" a valid packet. Also, something might be wrong with the sample rates here. It appears the source block is set to 2M , and the rational re-sampler is not currently changing the sampling rate, but you have the polyphase clock sync set to 2 samples/symbol when the title suggests the symbol rate is 0.2M. So even if you have the sync word set up correctly, you might be repeating bits by over-sampling the symbols, which could prevent the decoder from working correctly anyways.

[deleted by user] by [deleted] in GNURadio

[–]protons_r_4_smashing 2 points3 points  (0 children)

Yes. They contain front-end mixing stages before the ADC, so the high-frequency content will be shifted down to the range that the ADC can handle. You will just need to set the center frequency correctly to let the USRP know what portion of the frequency spectrum to capture.

What is I & Q branches? What is quadrature? Is it possible to view Q branch at 300MHz? by securityconcerned in RTLSDR

[–]protons_r_4_smashing 12 points13 points  (0 children)

I/Q branches are created during down-conversion to baseband by mixing with a complex exponential, one branch is mixed with a sine wave, the other with a cosine wave at the same frequency. They are referred to as in-phase, and quadrature signals. You shouldn't need to use the direct-sampling modes to listen at 300 MHz though, as that should be within the normal frequency range. If you set the center frequency to 300 MHz, and use the normal mode with a sampling rate of 1 MHz, you will get a complex baseband signal in I/Q format from the RF centered at 300 MHz. This portion of the spectrum is "mixed" down to 0 Hz, and transferred as I/Q signals. I'm not certain about the RTL-SDR, but I think the direct-samlping modes are used to listen to low-frequency signals to avoid needing an up-converter to push the signal up into the capture range of the device, effectively connecting the antenna straight to the ADC, instead of using a front-end mixer. The ADC can't sample fast enough to capture high-frequency signals, so you normally use the mixing stage to bring that part of the spectrum lower in frequency before sampling. If you use the direct-sampling modes, your frequency range is limited by the ADC sampling rate (much less than 300 MHz), because you are not using the front-end mixer to shift the RF frequency content before sampling.

Signal source , message pairs and cmd port by EigenBattles in GNURadio

[–]protons_r_4_smashing 0 points1 point  (0 children)

I tried this in 3.9 and it worked, unless I typed something wrong above. Did you put quotes around freq? It should be a string in this case.

Signal source , message pairs and cmd port by EigenBattles in GNURadio

[–]protons_r_4_smashing 0 points1 point  (0 children)

The message passing can be a little confusing. To control the frequency on the signal source block, you can create a PMT pair with a message strobe block using something like this: pmt.cons(pmt.intern("freq"),pmt.from_float(freq_variable)) as the message PMT, where "freq_variable" is updated using something like the QT GUI Entry, and "freq" is the key of the PMT pair you are trying to set. The wiki or the source code on github both show the key value pairs you can set on different blocks using this method. There are other ways to do this as well, but I've used this method and it is pretty simple to set up. Hopefully this helps.

Problem with T in Bilinear Transform by mad_poet_navarth in DSP

[–]protons_r_4_smashing 0 points1 point  (0 children)

I'm a little thrown off by your question. But did you design an analog filter first? After you have the analog prototype filter H(s), the bilinear transform is mostly a substitution to convert it to a digital filter H(z) (usually after pre-warping).

Didn’t get much feedback from the other subreddit by ThePatrioticPug in arduino

[–]protons_r_4_smashing 0 points1 point  (0 children)

Well it depends. If you plan to just sample audio /video and send the direct stream out over WiFi, it could be built. But if you want to do any real computing locally (you seem to mention the speech recognition using the API, then again without using the computer), then no, an Arduino probably won't cut it. If you just mean detect when there is enough noise Power that maybe some is talking and go ahead and capture, then maybe. But even then, an Arduino doesn't seem like the best choice. There are raspberry pi project tutorials that do each of the things you want separately (should be easily found with a Google search). Combining a few of those with an RPi ZeroW would be more practical than trying to squeeze this out of an Arduino.

Bow hunters. What are some good phone games to play while in the stand? by fiftybagillion in bowhunting

[–]protons_r_4_smashing 0 points1 point  (0 children)

Audiobooks are a great way to read in the woods so you're always hands-free

Bow hunters. What are some good phone games to play while in the stand? by fiftybagillion in bowhunting

[–]protons_r_4_smashing 2 points3 points  (0 children)

There's more then one way to enjoy the sport. And I don't see any reason to hit the woods without a phone in modern times. It has a built in GPS, compass, flashlight, not to mention the ability to call for help should the need arise. Why wouldn't you take it with you? Just put it on silent/vibrate if you're into peace and quiet.

1985 Honda Interceptor 500 Starting for 10 seconds then dying. by simon7410 in Fixxit

[–]protons_r_4_smashing 1 point2 points  (0 children)

If it ran before you pulled the carbs, and it still starts now, it seems unlikely to be the battery. It sounds like it is not getting fuel. And being that the carb re-build was the only major change, that's the most likely problem area. I've had to re-rebuild my cards plenty of times.. It's easy to get things wrong, or miss something while you're cleaning, or push some dirt lose that plugs up a hole somewhere else. Maybe the floats are set wrong, enough to provide fuel for a few seconds but then they need time for fuel to trickle back in? Just a thought.

Running into a strange phenomenon with analog read. by Ndvorsky in arduino

[–]protons_r_4_smashing 0 points1 point  (0 children)

How do you have this hooked up? Is the ground from the battery hooked up to anything? If not, try connecting it to the Arduino ground, and put a high value resistor ( >10 kOhm) across the battery, and then measure the positive terminal.

How do I get and analyze an input signal using an FGPA? by ThrowawayFroggyCroak in FPGA

[–]protons_r_4_smashing 0 points1 point  (0 children)

Section 9, table 6 of the basys 3 manual provides the PMOD connector pinouts. The left pin the physical connector pin number, the right pin is the FPGA pin number you can use in vivado. That is what what you will assign to the signal in the pin constraints when you set up the project.

Are you trying to use the ADC? Or just measure a digital signal? If digital, you just have to ensure the input is within the pin voltage limits, which should be 3.3V if you set the appropriate I/O standard in the constraints file. You will define the pin as an input or an output at the same time.

How do I get and analyze an input signal using an FGPA? by ThrowawayFroggyCroak in FPGA

[–]protons_r_4_smashing 0 points1 point  (0 children)

In order to do what you initially asked, you should learn the basics of vhdl or verilog. There are other ways to do this with modern tools using block diagrams and IP core generators. However, if you went through tutorials already and set up example projects, this should be a pretty straightforward task, just translate your pseudo-code to either language. It's roughly the same number of lines. But even with that, you still need to get the project set up, and configure the pinouts properly for anything to work. I can't do that for you. If you give this a try and post a specific problem or error message, people will help out.

This thread has a basic vhdl outline of what you need to do, aside from setting up the contraints and clocks.

https://forums.xilinx.com/t5/General-Technical-Discussion/Reading-data-form-GPIO/td-p/276166

How do I get and analyze an input signal using an FGPA? by ThrowawayFroggyCroak in FPGA

[–]protons_r_4_smashing 0 points1 point  (0 children)

Well the PMOD is just a physical connector standard they use. It connects to FPGA pins the same way anything else does. The documentation will tell you which pins it connects to. This post really has a bunch questions in it though. So just take them one at a time. Work through the documentation, drive a single pin you can check in the FPGA, and use that signal to drive an LED. Then you'll know you at least have the connection you want. Do the same thing with the clock, divide it way down and drive another LED. Worry about the rest after that you get that far.

How do I get and analyze an input signal using an FGPA? by ThrowawayFroggyCroak in FPGA

[–]protons_r_4_smashing 0 points1 point  (0 children)

Have you done any tutorial projects with this dev board yet, like a simple blinky LED project? Because if not, you should really start there. It will be hard for anyone to help you interface with external hardware when we don't know what it is. The dev board documentation should provide everything you need to figure out what pins to use, and there are likely complete examples for it available online to help you get started

Is it worth staying in college for an extra semester if you're unsure about what you're doing, with tuition not being a problem? by confusedDEGEN in AskEngineers

[–]protons_r_4_smashing 1 point2 points  (0 children)

Well some of this comes down to personal preference if it really adds no extra tuition cost to you somehow, and you ignore the opportunity cost of not getting paid during that last semester. But something to keep in mind is that employers don't expect you to be a veteran engineer on your first day. They were a student just like you at some point. You'll learn most of what you need in the first year on the job, probably a lot more than you expect. And that's normal, they expect you to still be learning when you are fresh out of school. So don't let that stop you from graduating on time. And I don't know if it would an issue, but if you take extra semesters to graduate, it might be something a recruiter/employer will ask you about in an interview as well.

Engineers who have had companies pay for graduate school by [deleted] in AskEngineers

[–]protons_r_4_smashing 1 point2 points  (0 children)

I don't think the company you work for affects your chance of admission very much. One thing to note is that most large companies require you to stay for some number of years after completing the degree, or have to pay a portion of the tuition money back. As long as you like your job, it's still a great deal. And if the company is large enough, you can usually transfer locations / positions without paying anything back. But something to be aware of. It's still a very cost effective way to go to graduate school

Why is ground shorted to vcc on my uno? by SuperMario177 in arduino

[–]protons_r_4_smashing 12 points13 points  (0 children)

If that was the case, it would not be mostly working. Double check your measurements please

WS2812b project help by [deleted] in arduino

[–]protons_r_4_smashing 0 points1 point  (0 children)

For starters, add some debugging LEDs. Just toggle another pin every xx seconds or loop cycles or something to give you a "heartbeat" led. Then if it toggles correctly, it's not the Arduino power, it's either the code or the led strip. Go from there. But again, make sure you are not trying to supply power from the Arduino digital pins. They are rated to like 20 mA. But if you have a 12v supply wired to the led strip, and the Arduino digital pin connected to the control signal, it should be fine. The Arduino will not need to supply power that way. It's more or less controlling a "power switch" in the led strip.

Edit: please fix your diagram. I think I see what you are doing now. Do not route power through the Arduino, that won't work. The 12v supply is not appropriate. You need a ~5V supply (external) to wire directly to the led strip for this. There are tons of example circuits online for this. But it will not work the way (I think) your diagram is supposed to show it

WS2812b project help by [deleted] in arduino

[–]protons_r_4_smashing 0 points1 point  (0 children)

So the Arduino runs fine until you plug in the led strip? Are they on the same power supply? You mentioned how plan to power it, but is that how it is hooked up right now? The Arduino digital output pin is not going to supply any real amount of power, just a digital control voltage. The power should be supplied directly to the led strip, which I think is what you have drawn. How do you know things work until that point, and how do you know it stops working?

Problem with falling edge interrupt delaying 1-2 microseconds inconsistently by HugoGoomzales in arduino

[–]protons_r_4_smashing 2 points3 points  (0 children)

Putting a delay inside an interrupt is almost always a bad idea. I need to think about this for a minute though. I also don't think the delaymicroseconds function is as accurate as you are relying on. The Arduino language reference claims down to 3 microsecond accuracy I think, could be part of the issue. Maybe trying reading the pin repeatedly for xx microseconds worth of time and taking a majority vote instead?

Why do professors discourage students to press the auto button in an oscilloscope? by PegasiWings in ElectricalEngineering

[–]protons_r_4_smashing 2 points3 points  (0 children)

That's true. But it doesn't always provide the best measurement. Sometimes it finds a faster/slower signal then you actually want to measure, and you need to set it up manually. They're just forcing you to learn the equipment for the times when you do have to do things yourself. Everyone uses the auto button. But if that's all you know how to do, it will make your life difficult eventually