Challenge Description: |
Ultimate LabVIEW Zone Coding Challenge |
| This promises to be the biggest LabVIEW Zone Coding Challenge ever! The challenges are greater, and the prizes are much greater. Contestants may select from one or more of five challenges to participate in. The challenges are as follows: |
Beginner Challenge |
| LabVIEW Financial Planner |
Advanced Challenges |
| LabVIEW MP3 Player LabVIEW Bioinformatics Analysis LabVIEW Channel Code Challenge LabVIEW Wavelet-based Denoising Challenge |
The descriptions for the challenges are found below. We will select one winner from each category. Each winner will receive a new Pioneer DVD Recorder Player DVR-233S! This recorder features:
|
LabVIEW Financial Planner Description |
| Help the LabVIEW Community make some money. For this challenge, your mission is to develop a LabVIEW VI which provides financial analysis for a user-specified stock. The user must be able to enter the stock ticker symbol for and then your application must connect to a financial website, download relevant information about that stock, and elegantly present the stock analysis to the user.
There are many websites publicly available which publish stock financial data. You select which website to utilize and the way in which you will retrieve financial information from it. However, the information you provide to the user must include at least:
Judging: First and foremost, your submission will be judged on usability. Is it user-friendly and intuitive to use? Does it behave as expected? Is the financial data presented in an understandable format? Secondly, it will also be judged on the speed with which your VI retrieves information from the web. Next, as you are free to add more statistics to your report, your submission will be judged on how much relevant material is provided to the user. Finally, all VIs will be judged on coding style according to the LabVIEW Development Guidelines |
LabVIEW MP3 Player |
| LabVIEW is fun. Music is fun. So a LabVIEW music player must be double the fun! This particular challenge requires ample creativity because much of the judging is in the design. Your mission is to design a VI which reads and plays MP3 music files. It must also provide an elegant user interface to improve the user experience. Ideas include play lists, visual sound analyzers, volume equalizer, etc. Could you even implement skins?
In terms of functionality, your VI must offer a way for users to select which MP3 on their computer they wish to play. Once they have selected a song, your application should play that file through the computer and allow the users to pause, stop, rewind, and fast forward the song. After that, let your creative side do the work. Look to current media applications for inspiration: Windows Media Player, WINAMP, MusicMatch, iTunes, etc. These applications provide a hose of interactive features to improve the listening experience. In this challenge, unlike all of the others, you are allowed to call external code (DLLs, exe, etc). This allows you to utilize the technology in other media software and focus most of your time on the user interface. Judging: Your MP3 Player must obviously successfully play MP3 files. To narrow down the entries, we will first select three submissions that meet the above criteria, make efficient use of your computer resources (memory consumption, processor usage, etc), and adhere to the LabVIEW Development Guidelines. A panel of judges will select the winner from these three finalists. They will select the winner based upon quality of the user interface and coding style of the application. |
LabVIEW Bioinformatics Analysis Challenge |
| Scientists from around the world are methodically collecting and analyzing data to explain specific biological processes from yeast cell collections to human DNA sequences. This data is publicly available on the web for anyone to download and study. However, we would of course like to have LabVIEW do all of this for us! In this challenge, you will build a VI which downloads specific pieces of information from online databases hosted by universities around the United States.
The sites listed below publish online databases. You must build a VI which acquires and stores, on your local machine, the data from these websites. Some of this may require CGI scripting. If you already have installed the LabVIEW Internet Toolkit, you are free to use the CGI VIs available in that toolkit. However, you will probably still need to develop more functionality on top of those for this particular application. Yeast Data Retrieval
Human Data Acquisition
Your VI must retrieve all of this data and write it each table to a separate tab-delimited ASCII file which is determined by the user at run-time. Judging: For any submission to be considered, it must correctly return all the data as described above. Once this is insured, we will measure how long each submission takes to retrieve and store all of this data (large amount of data). In the event of a tie, we will also take into account the amount of memory used. Whichever submission uses the least amount of memory and completes the data retrieval the quickest will win. As an additional test, we will judge how well the code conforms to the LabVIEW Development Guidelines. |
LabVIEW Channel Coding Challenge |
| Have you ever wondered why, when talking when talking to your friend over cell a phone, your voice reaches the other person without being completely corrupted by static in the air? This is made possible a technology, built into many modern cell phones, know as forward error correction (FEC). In telecommunications, FEC is a system of error control for data transmission wherein the receiving device (your friend's cell phone) has the capability to detect and correct parts of the signal corrupted by transmission errors (solar interference, your neighbor's ham radio, etc).
There are different ways to provide FEC. In the digital telecommunications world, channel coding is one commonly utilized technique. It is a pre-transmission process applied to a digital signal or data file intended to provide error-correcting in data transmission. The general concept is that you add bits of data (parity bits) to a data stream before it is transmitted to the receiver. These parity bits enable the receiver to determine if any of the data has been corrupted once it arrives. Learn more about the history of error-correction here. There are numerous different types of channel codes, each providing certain benefits such as speed, level of data integrity, etc. For this Coding Challenge, your goal is to develop a channel coding algorithm in LabVIEW to encode and decode digital transmissions. You may implement any type of channel coding you wish, using one (or more) of the well-known FEC codes or implementing something entirely new. You can find descriptions of many channel codes on the internet. While you are free to implement any of these, keep in mind that some are more efficient than others, and some are easier to build then others. Once you select the channel code you wish to use, you will create two VIs:
Judging: To judge your submission, we will perform several tests:Test 1: Verify functionality without noise
Test 2: Verify functionality with noise
We'll run Test 2 several times using different levels of noise (numbers of bits flipped) to gauge the performance (error correcting capacity) of your code. Submissions will also be judged based on code efficiency (best use of memory, most optimal LabVIEW code (in terms of memory usage/speed), and how well the code adhered to and adhere to the LabVIEW Development Guidelines. |
LabVIEW Wavelet-based Denoising Challenge |
| The power spectrum and other types of frequency domain analysis are tools that allow you to examine the frequency content of a signal. While these tools can be very useful when they are applied to signals with fixed frequency content, they don't work well with signals that have varying frequency content. Other tools such as wavelet-based analysis are better suited for such signals. To learn more about wavelets, see the entry and additional resources in the Measurement Encyclopedia entry for wavelet.
For this challenge, we will provide a waveform, represented by a 1D array of DBL numeric values, which has had non-stationary noise introduced into it. Your task is to develop a signal processing algorithm that will input this noisy signal and output a denoised signal that closely approximates the original signal. The tools from the Wavelet component of the Advanced Signal Processing Toolkit can prove especially useful for this challenge. To participate in this challenge, download this VI. This VI contains the signals we will test the submissions with. You can select which signal to read and then your VI should perform wavelets based denoising on that signal. However, your final submission should work with as many of the signals as possible. Judging: To judge the submission, we will run your application with all of the signals in the attached VI. For each signal, we will use least square fitting to determine which submission best approximates the original signal. The submission that performs efficient denoising on the greatest number of these signals will win. We will also take into account:
Additional Rules for All Challenges
Good luck, wireworkers! Discuss this challenge on the Discussion Forums Submission Deadline: Friday, August 5, 2005 |
|
|
Ask questions and share ideas on this challenge in the Discussion Forums. |
See the results of Past Coding Challenges |
Reader Comments | Submit a comment »
Legal
This tutorial (this "tutorial") was developed by National Instruments ("NI"). Although technical support of this tutorial may be made available by National Instruments, the content in this tutorial may not be completely tested and verified, and NI does not guarantee its quality in any way or that NI will continue to support this content with each new revision of related products and drivers. THIS TUTORIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND AND SUBJECT TO CERTAIN RESTRICTIONS AS MORE SPECIFICALLY SET FORTH IN NI.COM'S TERMS OF USE (http://ni.com/legal/termsofuse/unitedstates/us/).

Ask questions and share ideas